问题:
- 之前大家有一个争论 “当前App被kill 掉之后,当前App发送的Notification消息是否会被自动清除掉 ?”
- Google 为什么要设计 PendingIntent 这样一个东西?它的核心思想是什么?
- 使用DDMS,stop 应用A 进程,Notification 消息仍然存在。点击Notification 消息,会重新launch 应用A
- 使用adb shell kill,杀死应用A 进程,Notification 消息仍然存在。点击Notification 消息,会重新launch 应用A
- 进入Setting->App管理->应用A , 手动点击 “Force Stop”, Notification 消息会被清除
二、首先谈谈我个人对PendingIntent的理解:Google 为什么要设计 PendingIntent 这样一个东西?
- 从字面意思很容易知道,PendingIntent 是为了延迟调用,先构建好Intent,等调用的时候再触发
- PendingIntent是对Intent的包装,供当前App之外的其他App调用,它赋予外部App一种能力,使得外部App可以如同当前App一样地执行Intent
三、下面是Google官网对 PendingIntent 说明 http://developer.android.com/reference/android/app/PendingIntent.html
PendingIntent可以看作是对Intent的包装,供当前App之外的其他App调用。PendingIntent主要持有的信息是它所包装的Intent和当前App的Context。外部App执行这个PendingIntent时,间接地调用里面的Intent。正由于PendingIntent中保存有当前App的Context,使它赋予外部App一种能力,使得外部App可以如同当前App一样的执行PendingIntent里的Intent,就算在执行时当前App已经不存在了,也能通过存在PendingIntent里的Context照样执行Intent。