实习笔记-12
PendingIntent认识
- PendIntent其实是Intent的封装
- 不是立刻执行某个行为,而是
满足某些条件或触发某些事件后才执行指定的行为 - 我们的 Activity 如果设置了
exported = false,其他应用如果使用 Intent 就访问不到这个 Activity,但是使用 PendingIntent 是可以的。 - 即:PendingIntent将某个动作的触发时机交给其他应用;让那个应用代表自己去执行那个动作(权限都给他)
获取PendingIntent
1 | getActivity() |
1 | 参数: |
| flags | |
|---|---|
| FLAG_CANCEL_CURRENT | 先将当前已有的PendingIntent取消,然后重新生成一个PendingIntent对象。 |
| FLAG_NO_CREATE | 如果当前系统中不存在相同的PendingIntent对象,系统将返回null,否则返回已有对象 |
| FLAG_ONE_SHOT | 该PendingIntent只作用一次。在该PendingIntent对象通过send()方法触发过后,PendingIntent将自动调用cancel()进行销毁,那么如果你再调用send()方法的话,系统将会返回一个SendIntentException。 |
| FLAG_UPDATE_CURRENT | 更新之前PendingIntent中的Intent对象数据,例如更新Intent中的Extras |
| FLAG_IMMUTABLE | 创建的PendingIntent是不可变的,使用send方法发送的附加Intent会被忽略 |