官方文档的解释
A description of an Intent and target action to perform with it.
注意有一个target action,既PendingIntent是针对特定的目标活动的。
PendingIntent的实例能够经过
getActivity(Context, int, Intent, int)
,
getActivities(Context, int, Intent[], int)
,
getBroadcast(Context, int, Intent, int)
, and
getService(Context, int, Intent, int)
;这些方法来获得。经过这些方法获得的PendingIntent能够交给其余的应用,让其余应用随后来执行你所描述动做。
经过传递PendingIntent给其余应用,就好像可以让别的应用执行你指定的运算,这就好像别的应用也成了你的应用的一部分。
PendingIntent就是一个向外部应用(例如NotificationManager(通知),AlarmManager(铃声),桌面的AppWidgetManager)传递的意图。PendingIntent容许外部应用来使用你的应用的permission来执行预先肯定的代码。
若是你向外部应用传递一个intent,那个应用则传送或者广播你给的那个intent,他们会根据本身的permission来执行intent,可是若是你传递的是一个PendingIntent,你将建立你本身的permission,外部应用将会根据你的permission来执行Pendingintent中含有的intent
另外,PendingIntent是一个不会当即开始的intent。
当调用了startActivity(intent)或者StartService(intent)时,通常的intent会当即开始,而PendingIntent会在须要时才开始。
PendingIntent在Notification中的应用实例
首先我在MainActivity中建立通知
使用一个Button来建立消息

运行效果

又例如在NfcAdapter的enableForegroundDispatch方法中,参数里面须要加入PendingIntent
创建MainActivity 和 SecondActivity
在MainActivity中


当启动MainActivity以后,将手机靠近NFC标签才会启动SecondActivity
打个不恰当的比喻,能够把PendingIntent比喻成地雷,只有当踩中这个地雷的时候,它才会爆炸,所以只有当咱们触发了启动PendingIntent的动做时,才会启动PendingIntent内部的Intent。