รอการอนุมัติ Android คืออะไร


537

ฉันเป็นมือใหม่กับ Android ฉันอ่านเอกสาร Android แล้ว แต่ฉันยังต้องการคำชี้แจงเพิ่มเติม ใครช่วยบอกฉันได้ว่าอะไรกันแน่PendingIntent?

คำตอบ:


891

A PendingIntentเป็นโทเค็นที่คุณมอบให้กับแอปพลิเคชันต่างประเทศ (เช่นNotificationManager, AlarmManagerหน้าจอหลักAppWidgetManagerหรือแอปพลิเคชันอื่น ๆ ของบุคคลที่สาม) ซึ่งอนุญาตให้แอปพลิเคชันต่างประเทศใช้สิทธิ์ของแอปพลิเคชันของคุณ

หากคุณให้เจตนาแก่แอ็พพลิเคชันต่างประเทศแอปพลิเคชันนั้นจะดำเนินการตามสิทธิ์ของคุณIntentเอง แต่ถ้าคุณให้แอปพลิเคชันต่างประเทศกแอปพลิเคชันPendingIntentนั้นจะดำเนินการIntentโดยใช้สิทธิ์ของแอปพลิเคชันของคุณ


3
ยกเว้นการแจ้งเตือนคุณเคยเห็นอีกที่ไหนบ้างที่ใช้ PendingIntents ฉันคิดว่าฉันเห็นการแจ้งเตือนเท่านั้นที่ใช้ ...
พัฒนา Android

4
@Johnny_D: มันหมายถึงสิ่งที่พูดโดยทั่วไปแล้วคุณต้องการสร้าง Intent ที่ชัดเจนซึ่งชื่อคอมโพเนนต์เป็นชื่อแบบสัมบูรณ์ที่ไม่มีการอ้างอิงถึงชั้นเรียนของคุณเอง ไม่เช่นนั้น Intent อาจถูกส่งไปยังแอปพลิเคชันอื่นซึ่งอาจทำให้เกิดปัญหาเนื่องจาก Intent นั้นจะทำงานภายใต้การอนุญาตของแอปพลิเคชันของคุณ
Lie Ryan

3
@LieRyan สิทธิ์การสมัครที่นี่เป็นสิทธิ์ที่เราระบุในรายการหรือไม่ เช่น. การอนุญาตทางอินเทอร์เน็ต
Diffy

2
นี่คือ "การมอบการอนุญาต" ไม่ดีต่อความปลอดภัยหรือไม่ ฉันมีแอปพลิเคชั่น A ที่ฉันให้สิทธิ์หลายอย่าง ฉันมีแอพพลิเคชั่น B ซึ่งใช้การอนุญาตน้อยกว่ามาก หากแอปพลิเคชัน A สามารถเริ่มบางสิ่งบางอย่างในแอปพลิเคชัน B ผ่านทาง PendingIntent (อนุญาตให้สิทธิ์ทั้งหมดจาก A ไปเป็น B ชั่วคราว) B จะไม่สามารถทำสิ่งใดที่อยู่เบื้องหลังด้วยการอนุญาตนั้นหรือไม่? ตัวอย่างเช่น A อาจมีสิทธิ์ในการอ่านผู้ติดต่อของผู้ใช้ แต่ B ไม่มี หาก A ส่ง PendingIntent ไปยัง B, B สามารถอ่านผู้ติดต่อและทำบางสิ่งที่เป็นอันตราย (เช่นส่งไปยังเซิร์ฟเวอร์)
Tiago

6
@ ติอาโก้: ในกรณีของคุณหากแอปพลิเคชันที่ได้รับการยกเว้นให้แอปพลิเคชัน B ที่ค้างอยู่เพื่อให้ B สามารถส่งได้เมื่อต้องการอ่านข้อมูลการติดต่อ มันเป็นความรับผิดชอบของ A ที่จะถามผู้ใช้ว่าข้อมูลการติดต่อใดที่ผู้ใช้ต้องการให้กับ B และให้ B นั้นเท่านั้น ความตั้งใจที่รอดำเนินการเป็นกลไกการเลื่อนระดับสิทธิพิเศษและเช่นเดียวกับกลไกการเลื่อนระดับสิทธิพิเศษที่มีพลังอันยิ่งใหญ่มาพร้อมความรับผิดชอบที่ยิ่งใหญ่ เป็นความรับผิดชอบของผู้ใช้ในการตัดสินใจว่าแอปพลิเคชัน B น่าเชื่อถือสำหรับข้อมูลผู้ติดต่อที่ผู้ใช้เลือกหรือไม่
Lie Ryan

49

เจตนาที่รอดำเนินการเป็นโทเค็นที่คุณมอบให้กับแอพบางตัวเพื่อดำเนินการในนามของแอพโดยไม่คำนึงว่ากระบวนการสมัครของคุณยังมีชีวิตอยู่หรือไม่

ผมคิดว่าเอกสารมีรายละเอียดเพียงพอ: รอดำเนินการเอกสารแสดงเจตจำนง

แค่คิดกรณีการใช้งานสำหรับ Intents ที่รอดำเนินการเช่น (Broadcasting Intents, กำหนดการเตือน) และเอกสารจะชัดเจนและมีความหมาย


ฉันคิดว่า Intent เป็นเหมือนสัญลักษณ์ที่เรามอบให้กับแอพอื่น ๆ เพื่อดำเนินการในนามของแอปของเรา ดังนั้นความแตกต่างเพียงอย่างเดียวระหว่างเจตนาที่รอดำเนินการและเจตนาคือชีวิตกระบวนการสมัครของเรา
CopsOnRoad

40

ในกรณีของฉันไม่มีคำตอบข้างต้นหรือเอกสารอย่างเป็นทางการของ googleช่วยให้ฉันคว้าแนวคิดของการPendingIntentเรียน

และจากนั้นผมพบว่าวิดีโอนี้Google I / O 2013 นอกเหนือจากบลูดอทเซสชั่น ในวิดีโอนี้อดีต googler Jaikumar Ganesh อธิบายว่าอะไรPendingIntentคืออะไรและนั่นคือสิ่งที่ทำให้ฉันเห็นภาพรวมของสิ่งนี้

ด้านล่างนี้เป็นเพียงการถอดความวิดีโอด้านบน ( จาก 15:24 )

ดังนั้นความตั้งใจที่รออยู่คืออะไร?

มันเป็นสัญญาณว่ากระบวนการของแอปจะให้กระบวนการสถานที่และกระบวนการสถานที่จะใช้ในการตื่นขึ้นมาของแอปเมื่อมีเหตุการณ์ที่น่าสนใจเกิดขึ้น ดังนั้นนี่จึงหมายความว่าแอปของคุณในพื้นหลังไม่จำเป็นต้องทำงานอยู่เสมอ เมื่อสิ่งที่น่าสนใจเกิดขึ้นเราจะปลุกคุณ สิ่งนี้ช่วยประหยัดแบตเตอรี่ได้มาก

คำอธิบายนี้ชัดเจนยิ่งขึ้นด้วยโค้ดตัวอย่างนี้ (ซึ่งรวมอยู่ในสไลด์ของเซสชัน)

PendingIntent mIntent = PendingIntent.getService(...);

mLocationClient.requestLocationUpdates(locationRequest, mIntent);

public void onHandleIntent(Intent intent) {   
    String action = intent.getAction();   
    if (ACTION_LOCATION.equals(action)) {       
        Location location = intent.getParcelableExtra(...)   
    }
}

เห็นด้วยมันค่อนข้างง่ายและชัดเจนที่จะเข้าใจ แต่ไม่ได้บอกอะไรเราเกี่ยวกับการอนุญาตที่ PendingIntent มอบให้กับแอปอื่น
CopsOnRoad

35

ทำไมต้องมี PendingIntent ฉันคิดอย่างนั้น

  1. สาเหตุที่แอปพลิเคชันที่รับไม่สามารถสร้างIntentหรือ
  2. สาเหตุที่เราไม่สามารถใช้วิIntentสำหรับจุดประสงค์เดียวกันได้

เช่นIntent bluetoothIntent= new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);

ถ้าผมส่งbluetoothIntentไปยังโปรแกรมประยุกต์อื่นซึ่งไม่ได้รับอนุญาตที่ได้รับใบสมัครไม่สามารถเปิดใช้งานบลูทูandroid.permission.BLUETOOTH_ADMINstartActivity(bluetoothIntent)

ข้อ จำกัด PendingIntentที่จะเอาชนะโดยใช้ ด้วยPendingIntentแอปพลิเคชันที่รับไม่จำเป็นต้องandroid.permission.BLUETOOTH_ADMINเปิดใช้งาน Bluetooth แหล่ง


3
ตัวอย่าง BluetoothIntent ของคุณมีค่าจริงๆ ขอบคุณ
Nicks

1
@Kiran - หากแอปพลิเคชันที่รับสามารถเปิดบลูทู ธ (โดยใช้ความตั้งใจที่รอดำเนินการ) ทำไมแอปนั้นไม่ได้รวมสิทธิ์นี้ไว้ในรายการ มันเหมือนกับว่าฉันกำลังสร้างแอพที่สามารถโทรออกได้ แต่ฉันไม่ได้รวมสิทธิ์ CALL_PHONE เพราะฉันต้องการให้แอพอื่นส่งความตั้งใจที่รอดำเนินการมาให้ฉัน นี่คือสิ่งที่คุณต้องการจะพูด?
CopsOnRoad

1
@CopsOnRoad แอปที่ได้รับของ PendingIntent สามารถเป็นแอพทั่วไปที่รับคำขอใด ๆ และดำเนินการตามคำขอในนามของผู้ร้องขอ บทบาทของมันเป็นแค่คนกลางดังนั้นจึงไม่มีสิทธิ์ทั้งหมด ตัวอย่างของแอพกลางคนนี้คือตัวจัดการการแจ้งเตือนซึ่งสามารถเรียกใช้แอพที่ต้องการจากการแจ้งเตือนโดยไม่ต้องมีสิทธิ์
Xiao-Feng Li

21

ความตั้งใจที่รอดำเนินการเป็นความตั้งใจที่จะเริ่มในบางจุดในอนาคต เจตนาปกติจะเริ่มต้นทันทีเมื่อมีการส่งผ่านไปยังหรือstartActivity(Intent)StartService(Intent)


13

ความตั้งใจในอนาคตที่แอปอื่นสามารถใช้
และนี่คือตัวอย่างสำหรับการสร้าง:

Intent intent = new Intent(context, MainActivity.class);
PendingIntent pendIntent = PendingIntent.getActivity(context, 0, intent, 0);

8
Downvote เพราะคุณไม่ได้อธิบายสิ่งที่พิเศษเกี่ยวกับความตั้งใจซึ่งเป็น "อนาคต" หรือใช้งานโดยแอปอื่น ๆ ได้
Vic

@ WhereDatApp.com มีการกล่าวโดย Antoine de Saint Exupéryและแปลโดย Lewis Galantière;)
Choletski

@Choletski ขอบคุณฉันไม่รู้เกี่ยวกับการแปล👍
Oded Breiner

13

บทวิเคราะห์รถแท็กซี่

เจตนา

โดยทั่วไปความตั้งใจจะใช้เพื่อเริ่มบริการ ตัวอย่างเช่น:

Intent intent = new Intent(CurrentClass.this, ServiceClass.class);
startService(intent);

เหมือนเมื่อคุณเรียกใช้รถแท็กซี่:

Myself = CurrentClass
Taxi Driver = ServiceClass

รอการแสดงเจตนา

คุณจะต้องใช้สิ่งนี้:

Intent intent = new Intent(CurrentClass.this, ServiceClass.class);
PendingIntent pi = PendingIntent.getService(parameter, parameter, intent, parameter);
getDataFromThirdParty(parameter, parameter, pi, parameter);

ตอนนี้บุคคลที่สามนี้จะเริ่มให้บริการในนามของคุณ การเปรียบเทียบชีวิตจริงคือ Uber หรือ Lyft ซึ่งเป็นทั้ง บริษัท แท็กซี่

คุณส่งคำขอให้ไปที่ Uber / Lyft พวกเขาจะไปข้างหน้าและเรียกไดรเวอร์ตัวใดตัวหนึ่งในนามของคุณ

ดังนั้น:

Uber/Lyft ------ ThirdParty which receives PendingIntent
Myself --------- Class calling PendingIntent
Taxi Driver ---- ServiceClass

11

PendingIntent เป็นโทเค็นที่คุณมอบให้กับแอปพลิเคชันอื่น (เช่นตัวจัดการการแจ้งเตือนตัวจัดการสัญญาณเตือนภัยหรือแอปพลิเคชันอื่น ๆ ของบุคคลที่สาม) ซึ่งอนุญาตให้แอปพลิเคชันอื่นนี้ใช้สิทธิ์ของแอปพลิเคชันของคุณ หากต้องการทำการออกอากาศผ่านจุดประสงค์ที่รอดำเนินการอยู่ดังนั้นขอให้ PendingIntent ผ่านทาง PendingIntent.getBroadcast () ในการทำกิจกรรมด้วยความตั้งใจที่รอดำเนินการคุณจะได้รับกิจกรรมผ่านทาง PendingIntent.getActivity ()


7

เจตนาคืออะไร

An Intent เป็นคำสั่งเฉพาะใน Android ที่อนุญาตให้คุณส่งคำสั่งไปยัง Android OS เพื่อทำสิ่งที่เฉพาะเจาะจง คิดว่ามันเหมือนการกระทำที่ต้องเกิดขึ้น มีการกระทำหลายอย่างที่สามารถทำได้เช่นส่งอีเมลหรือแนบรูปถ่ายไปยังอีเมลหรือแม้กระทั่งเปิดตัวแอปพลิเคชัน กระบวนการทำงานแบบลอจิคัลของการสร้างเจตนามักเป็นดังนี้: สร้างเจตนา เพิ่มตัวเลือกเจตนา -> ตัวอย่าง เราส่งความตั้งใจประเภทใดไปยังระบบปฏิบัติการหรือคุณลักษณะใด ๆ ที่เกี่ยวข้องกับความตั้งใจนั้นเช่นสตริงข้อความหรือบางสิ่งที่ถูกส่งผ่านไปพร้อมกับเจตนาค เรียกใช้เจตนา

ตัวอย่างชีวิตจริง: สมมติว่าฉันตื่นนอนตอนเช้าและฉัน "ตั้งใจ" เพื่อไปที่ห้องน้ำ ก่อนอื่นฉันจะต้องคิดก่อนว่าจะไปห้องน้ำ แต่นั่นไม่ได้ทำให้ฉันไปห้องน้ำจริงๆ ฉันจะต้องบอกให้สมองของฉันลุกจากเตียงก่อนแล้วเดินไปที่ห้องน้ำแล้วปล่อยจากนั้นไปแล้วล้างมือแล้วไปเช็ดมือ เมื่อฉันรู้ว่าฉันจะไปที่ไหนฉันจะส่งคำสั่งเพื่อเริ่มต้นและร่างกายของฉันจะดำเนินการ

ความตั้งใจที่รอดำเนินการคืออะไร?

ต่อจากตัวอย่างในชีวิตจริงสมมติว่าฉันต้องการอาบน้ำ แต่ฉันต้องการอาบน้ำหลังจากที่ฉันแปรงฟันและกินอาหารเช้า ดังนั้นฉันรู้ว่าฉันจะไม่อาบน้ำจนกว่าอย่างน้อย 30-40 นาที ฉันยังมีในหัวของฉันที่ฉันต้องเตรียมเสื้อผ้าของฉันแล้วเดินขึ้นบันไดกลับไปที่ห้องน้ำแล้วเปลื้องผ้าแล้วอาบน้ำ อย่างไรก็ตามสิ่งนี้จะไม่เกิดขึ้นจนกว่าจะผ่านไป 30-40 นาที ตอนนี้ฉันมีความตั้งใจที่จะอาบน้ำ ใช้เวลา 30-40 นาที

นั่นคือความแตกต่างระหว่างเจตนาที่รอดำเนินการและความตั้งใจปกติ สามารถสร้าง Intent ปกติได้โดยไม่ต้องมี Intent ที่รอดำเนินการอย่างไรก็ตามเพื่อที่จะสร้าง Intent ที่รอคุณจะต้องทำการเซ็ตอัพ Intent ก่อน


ฉันชอบความเรียบง่ายและตัวอย่างฉันเข้าใจมันค่อนข้างดีด้วยคำพูดนั้น
Josema

ฉันดีใจที่โพสต์นี้มีประโยชน์สำหรับคุณ Josema
Narendra Motwani

นี่เป็นสิ่งเดียวกับคำอธิบายของ Shakeeb Ayaz ด้านบน ใครคัดลอกมาจากใคร :)
likejudo

5

PendingIntentนั้นเป็นวัตถุที่ล้อมIntentวัตถุอื่น จากนั้นสามารถส่งผ่านไปยังแอปพลิเคชันต่างประเทศที่คุณอนุญาตให้แอปนั้นมีสิทธิ์ในการดำเนินการเช่นดำเนินการตามเจตนาราวกับว่าถูกเรียกใช้จากกระบวนการของแอปของคุณเอง (ได้รับอนุญาตและข้อมูลเฉพาะตัวเดียวกัน) เพื่อเหตุผลด้านความปลอดภัยคุณควรส่งผ่านความตั้งใจที่ชัดเจนไปยัง PendingIntent แทนที่จะเป็นนัย

 PendingIntent aPendingIntent = PendingIntent.getService(Context, 0, aIntent,
                    PendingIntent.FLAG_CANCEL_CURRENT);

4

ในภาษาง่าย ๆ
1. คำอธิบายของการกระทำที่ตั้งใจและเป้าหมายที่จะดำเนินการ ก่อนอื่นคุณต้องสร้างความตั้งใจและจากนั้นคุณจะต้องผ่านคลาสจาวาเฉพาะที่คุณต้องการเรียกใช้งานไปยัง Intent
2. คุณสามารถเรียกคลาส java เหล่านั้นซึ่งเป็นคลาสแอ็คชันคลาสของคุณโดย PendingIntent.getActivity, PendingIntent.getActivities (บริบท, int, Intent [], int), PendingIntent.getBroadcast (Context, int, Intent, int) และ PendingIntent getService (บริบท, int, เจตนา, int); ที่นี่คุณจะเห็นว่าความตั้งใจซึ่งมาจากขั้นตอนที่ 1
3. คุณควรจำไว้ว่า ... โดยการให้ PendingIntent ให้กับแอปพลิเคชันอื่นคุณกำลังให้สิทธิ์ในการดำเนินการตามที่คุณระบุ

นั่นคือสิ่งที่ฉันเรียนรู้หลังจากอ่านเป็นเวลานาน


3

PendingIntent ล้อมเจตนาทั่วไปด้วยโทเค็นที่คุณมอบให้กับแอปต่างประเทศเพื่อดำเนินการโดยได้รับอนุญาตจากคุณ สำหรับเช่น:

การแจ้งเตือนของแอปเพลงของคุณไม่สามารถเล่น / หยุดเพลงชั่วคราวหากคุณไม่ได้ให้การPendingIntentออกอากาศเพราะแอพเพลงของคุณได้READ_EXTERNAL_STORAGEรับอนุญาตซึ่งแอปแจ้งเตือนไม่ การแจ้งเตือนเป็นบริการระบบ (ดังนั้นจึงเป็นแอปต่างประเทศ)


ตัวอย่างที่ดี!
likejudo

2

ตามชื่อแนะนำ .. รอการอนุมัติ

คุณสามารถจ่ายเงิน (ทำหลังจากผ่านไประยะหนึ่ง) มันทำงานได้ตามความตั้งใจอื่น ๆ .. มันเป็นวิธีการมอบงานของคุณให้กับแอพอื่นเพื่อทำงานในนามของคุณ


1
คุณยกตัวอย่างชีวิตจริงของสิ่งนี้ได้ไหม
CopsOnRoad

0

รอเจตนาระบุการดำเนินการที่จะใช้ในอนาคต ช่วยให้คุณสามารถส่งต่อเจตนาในอนาคตไปยังแอปพลิเคชันอื่นและอนุญาตให้แอปพลิเคชันนั้นดำเนินการตามเจตนานั้นราวกับว่าได้รับอนุญาตเหมือนกับแอปพลิเคชันของคุณไม่ว่าแอปพลิเคชันของคุณจะยังคงอยู่

เป็นโทเค็นที่คุณมอบให้กับแอปพลิเคชันต่างประเทศซึ่งอนุญาตให้แอปพลิเคชันต่างประเทศใช้การอนุญาตของแอปพลิเคชันของคุณเพื่อเรียกใช้งานโค้ดที่กำหนดไว้ล่วงหน้า

หากคุณให้ความตั้งใจแก่แอปพลิเคชันต่างประเทศและแอปพลิเคชันนั้นส่ง / เผยแพร่เจตนาที่คุณให้พวกเขาจะดำเนินการแสดงเจตนาด้วยสิทธิ์ของตนเอง แต่ถ้าคุณให้ความตั้งใจที่ค้างอยู่กับแอปพลิเคชันต่างประเทศที่คุณสร้างขึ้นโดยใช้สิทธิ์ของคุณเองแอปพลิเคชันนั้นจะดำเนินการตามเจตนาที่มีอยู่โดยใช้การอนุญาตของแอปพลิเคชันของคุณ

หากต้องการทำการออกอากาศผ่านจุดประสงค์ที่รอดำเนินการอยู่ดังนั้นขอให้ PendingIntent ผ่านทาง PendingIntent.getBroadcast () ในการทำกิจกรรมด้วยความตั้งใจที่รอดำเนินการคุณจะได้รับกิจกรรมผ่านทาง PendingIntent.getActivity ()

มันเป็นการกระทำที่ตั้งใจที่คุณต้องการที่จะดำเนินการ แต่ในเวลาต่อมา ลองคิดดูสิว่ามันเป็นการวางจุดประสงค์บนน้ำแข็ง เหตุผลที่ต้องการคือเนื่องจากต้องมีการสร้างและเปิดใช้งานจากบริบทที่ถูกต้องในแอปพลิเคชันของคุณ แต่มีบางกรณีที่ไม่สามารถใช้งานได้ในเวลาที่คุณต้องการเรียกใช้การกระทำเนื่องจากคุณอยู่นอกบริบททางเทคนิคของแอปพลิเคชัน ตัวอย่างทั่วไปสองตัวอย่างกำลังเรียกใช้กิจกรรมจากการแจ้งเตือนหรือ BroadcastReceiver

โดยการสร้าง PendingIntent ที่คุณต้องการใช้ในการเปิดตัวพูดกิจกรรมในขณะที่คุณมีบริบทให้ทำ (จากภายในกิจกรรมหรือบริการอื่น) คุณสามารถส่งวัตถุนั้นไปยังสิ่งภายนอกเพื่อเปิดส่วนของแอปพลิเคชันของคุณ ในนามของคุณ.

PendingIntent จัดเตรียมเครื่องมือสำหรับให้แอปพลิเคชันทำงานแม้หลังจากที่กระบวนการของพวกเขาออกไปแล้ว เป็นสิ่งสำคัญที่จะต้องทราบว่าแม้หลังจากที่แอปพลิเคชันที่สร้าง PendingIntent นั้นถูกฆ่าแล้ว Intent ยังคงสามารถทำงานได้ คำอธิบายของการกระทำที่ตั้งใจและเป้าหมายเพื่อดำเนินการกับมัน อินสแตนซ์ของคลาสนี้ถูกสร้างด้วย getActivity (บริบท, int, Intent, Int), getBroadcast (บริบท, int, Intent, Int), getService (บริบท int, Intent, Int); วัตถุที่ส่งคืนสามารถส่งไปยังแอปพลิเคชันอื่น ๆ เพื่อให้สามารถดำเนินการตามที่คุณอธิบายในนามของคุณได้ในภายหลัง

โดยการให้ PendingIntent ให้กับแอปพลิเคชันอื่นคุณกำลังให้สิทธิ์ในการดำเนินการตามที่คุณระบุราวกับว่าแอปพลิเคชันอื่นเป็นตัวคุณเอง (ด้วยสิทธิ์และตัวตนเดียวกัน) คุณควรระมัดระวังเกี่ยวกับวิธีการสร้าง PendingIntent: บ่อยครั้งเช่นเจตนาพื้นฐานที่คุณให้จะมีการตั้งชื่อส่วนประกอบอย่างชัดเจนให้เป็นหนึ่งในองค์ประกอบของคุณเองเพื่อให้แน่ใจว่าจะถูกส่งไปที่อื่น

PendingIntent นั้นเป็นเพียงการอ้างอิงถึงโทเค็นที่ดูแลโดยระบบที่อธิบายข้อมูลต้นฉบับที่ใช้เพื่อเรียกคืน ซึ่งหมายความว่าแม้ว่ากระบวนการของแอปพลิเคชันที่เป็นเจ้าของจะถูกฆ่าก็ตาม หากแอปพลิเคชันที่สร้างขึ้นในภายหลังเรียกคืน PendingIntent ชนิดเดียวกัน (การดำเนินการเดียวกันการกระทำที่ตั้งใจเดียวกันข้อมูลหมวดหมู่และส่วนประกอบและการตั้งค่าสถานะเดียวกัน) จะได้รับ PendingIntent ที่แสดงโทเค็นเดียวกันหากยังคงถูกต้องและสามารถ ดังนั้นโทรยกเลิก () เพื่อลบ


0

ความตั้งใจที่รอดำเนินการเป็นเจตนาที่ให้สิทธิ์ทั้งหมดแก่แอปพลิเคชันอื่นในการทำงานเฉพาะ เมื่อกิจกรรมหลักถูกทำลายระบบปฏิบัติการ Android จะคืนสิทธิ์จากกิจกรรมนั้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.