天天看點

android developer tiny share-20160810

使用PendingIntent

PendingIntent對象是Intent對象的包裝器。PendingIntent 的主要目的是授權外部應用使用包含的 Intent,如Notification、Widget、Alarm,就像是它從您應用本身的程序中執行的一樣。

待定 Intent 的主要用例包括:

聲明使用者使用您的通知執行操作時所要執行的 Intent(Android 系統的 NotificationManager 執行 Intent)。

聲明使用者使用您的 應用小工具執行操作時要執行的 Intent(主螢幕應用執行 Intent)。

聲明未來某一特定時間要執行的 Intent(Android 系統的 AlarmManager 執行 Intent)。

由于每個 Intent 對象均設計為由特定類型的應用元件進行處理(Activity、Service 或 BroadcastReceiver),是以還必須基于相同的考慮因素建立 PendingIntent。使用待定 Intent 時,應用不會使用調用(如 startActivity())執行該 Intent。相反,通過調用相應的建立器方法建立 PendingIntent 時,您必須聲明所需的元件類型:

PendingIntent.getActivity(),适用于啟動 Activity 的 Intent。

PendingIntent.getService(),适用于啟動 Service 的 Intent。

PendingIntent.getBroadcast(),适用于啟動 BroadcastReceiver 的 Intent。

除非您的應用正在從其他應用中接收待定 Intent,否則上述用于建立 PendingIntent 的方法可能是您所需的唯一 PendingIntent 方法。

每種方法均會提取目前的應用 Context、您要包裝的 Intent 以及一個或多個指定應如何使用該 Intent 的标志(例如,是否可以多次使用該 Intent)。

如需了解有關使用待定 Intent 的詳細資訊,請參閱通知 和應用小工具 API 指南等手冊中每個相應用例的相關文檔。