1. 简介
PendingIntent可以看作是对Intent的一个封装,在满足某些条件或触发某些事件后才执行指定的行为(启动特定Service,Activity,BrcastReceive)。
A组件 创建了一个 PendingIntent 的对象然后传给 B组件,B 在执行这个 PendingIntent 的 send 时候,它里面的 Intent 会被发送出去,而接受到这个 Intent 的 C 组件会认为是 A 发的。
B 以 A 的权限和身份发送了这个 Intent。
比如,我们的 Activity 如果设置了 exported = false,其他应用如果使用 Intent 就访问不到这个 Activity,但是使用 PendingIntent 是可以的。
综上所述,PendingIntent 有两个特点:
- 将某个动作的触发时机交给其他应用
- 让那个应用代表自己去执行那个动作(权限都给他了)
获取 PendingIntent:
- getActivity
- getActivities
- getBroadcast
- getService
- getForegroundService
//获得一个用于启动特定Activity的PendingIntent
public static