Android PendingIntent小结

Posted 包子糖Sakura

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android PendingIntent小结相关的知识,希望对你有一定的参考价值。

官方文档的解释
 
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。

 

技术分享

以上是关于Android PendingIntent小结的主要内容,如果未能解决你的问题,请参考以下文章

Android PendingIntent 启动Activity

Android 通知 PendingIntent Extras null

Android中的前台通知启动新的活动(通过pendingIntent)而不是现有的

Pendingintent getbroadcast 丢失可打包数据

Pendingintent getbroadcast 丢失可打包数据

android点滴之PendingIntent的使用