何时使用IntentSender与PendingIntent?

Ala*_*lan 9 android android-pendingintent

Android文档描述了这两个类PendingIntentIntentSender类,但是不清楚何时或为什么要使用IntentSenderover PendingIntent- 实际上大部分描述对于两者都是相同的.

PendingIntent文档:

要对其执行的Intent和目标操作的说明.使用(...)创建此类的实例; 返回的对象可以交给其他应用程序,以便他们可以在以后代表您执行您所描述的操作.

IntentSender文档:

要对其执行的Intent和目标操作的说明.返回的对象可以交给其他应用程序,以便他们可以在以后代表您执行您所描述的操作.

这两个类都是,Parcelable并且这两个类允许接收器使用sendsendIntent(具有几乎相同的签名)调用动作.

既然你需要一个现有的PendingIntent来创建一个IntentSender,你在什么情况下想要创建一个IntentSender而不仅仅是使用你的PendingIntent

Pra*_*rad -2

这里有非常好的例子和解释。

这是一个快速总结:

意图发送者

IntentSender 是一个实例android.content.IntentSender

的实例不能直接构造,但可以从实例IntentSender中获取,因为封装了.android.app.PendingIntentPendingIntent.getIntentSender()PendingIntentIntentSender

IntentSender文档

待定意向

APendingIntent是您给予外部应用程序的令牌(例如AlarmManagerAppWidgetManager),它允许外部应用程序使用您的应用程序的权限来执行预定义的代码段。

基本上,接收到的外部应用程序PendingIntent不知道所包装的 Intent 的内容PendingIntent,但当满足某些条件时,外部应用程序应该将意图发送回主应用程序。

待定意图文档