官方文档的解释
 
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小结的更多相关文章

  1. Android技巧小结之新旧版本Notification

    最近开发用到了通知功能,但有几个地方老是提示deprecated,然后就找了篇文章学习了下新旧版本的不同. Notification即通知,用于在通知栏显示提示信息. 在较新的版本中(API leve ...

  2. android基础小结

    (注:此小结文档在全屏模式下观看效果最佳) 2016年3月1日,正式开始了我的android学习之路. 最最开始的,当然是学习怎样搭载环境了,然而苦逼的我在win10各种坑爹的指引下还是安装了一个星期 ...

  3. android: PendingIntent的使用

    PendingIntent的Flags的类型: * Flags的类型: FLAG_ONE_SHOT:得到的pi只能使用一次,第二次使用该pi时报错 FLAG_NO_CREATE: 当pi不存在时,不创 ...

  4. Unity加入Android广告小结

    在Unity游戏加入广告大致有以下几种方式: 导入Android Jar包 导出游戏为Android项目(在Build时选中Google Android Project,这种方法可以参考将Unity3 ...

  5. Android EditText小结

    防止EditText获取焦点弹出输入法 android:focusable="true" android:focusableInTouchMode="true" ...

  6. Android存储小结

    转自:http://www.liaohuqiu.net/cn/posts/storage-in-android/ android系统自身自带有存储,另外也可以通过sd卡来扩充存储空间.前者好比pc中的 ...

  7. Android WindowManager 小结

    Android---系统服务之 ---WindowManager WindowManager是Android中一个重要的服务(Service ).WindowManager Service 是全局的, ...

  8. android入门小结一

    一 Android入门基础:从这里开始 gradle介绍: Android Studio使用Gradle 编译运行Android工程. 工程的每个模块以及整个工程都有一个build.gradle文件. ...

  9. Android疑问小结

    1:为什么新建项目继承自ActionBarActivity而不是Activity? 为了版本兼容的,你新建项目时最低版本选择4.0以上,就不会出现appcompat_v7包,AndroidBarAct ...

随机推荐

  1. OD 实验(二十) - 对反调试程序的逆向分析(一)

    程序: Keyfile.dat 里的内容 该文件中要至少有 9 个 ReverseMe.A: 运行程序 用 OD 打开该程序,运行 弹出的是错误的对话框 该程序发现 OD 对它的调试,所以该程序对 O ...

  2. Python Tkinter参考资料之(通用控件属性)

    大部分控件的共享选项: 选项(别名) 说明 单位 典型值 没有此属性的控件 background(bg) 当控件显示时,给出的正常颜色 color 'gray25''#ff4400'   border ...

  3. C语言学习笔记---好用的函数memcpy与memset

    这个主要用于我个人的学习笔记,便于以后查询,顺便分享给大家. 想必在用C的时候难免会与数组,指针,内存这几样东西打交道,先以数组为例,例如有一个数组int a[5] = {1, 2, 3, 4, 5} ...

  4. Flask之模板之控制语句

    3.4 控制语句 常用的几种控制语句: 模板中的if控制语句 @app.route('/user') def user(): user = 'dongGe' return render_templat ...

  5. Python 小知识点(8)-- __new__

    第一段代码如下: class Foo(object): def __init__(self,name): self.name = name print("Foo __init__" ...

  6. Normalize.css与Reset CSS:定义浏览器统一的默认样式

    今天在chrome上测试我的网页,发现一个<p>段落多出了一些margin,而我自己没有设定.打开f12调试,发现在一个“user agent style”栏下定义了这个margin,去g ...

  7. Spring高级话题-@Enable***注解的工作原理

    出自:http://blog.csdn.net/qq_26525215 @EnableAspectJAutoProxy @EnableAspectJAutoProxy注解 激活Aspect自动代理 & ...

  8. <转>UNIX 共享内存应用中的问题及解决方法

    http://www.ibm.com/developerworks/cn/aix/library/au-cn-sharemem/ 共享内存是一种非常重要且常用的进程间通信方式,相对于其它IPC机制,因 ...

  9. PHP获取页面执行时间的方法(推荐)

    一些循环代码,有时候要知道页面执行的时间,可以添加以下几行代码到页面头部和尾部: 头部:$stime=microtime(true); 尾部: $etime=microtime(true);//获取程 ...

  10. java web 读取配置文件两种方法

    package com.tsinghua.getDataBaseConn; import java.io.IOException;import java.io.InputStream;import j ...