PendingIntent

原创 2015年07月06日 22:42:55

PendingIntent:

    等待的,未决定的Intent。一种特殊的Intent。

区别:

    Intent的执行立刻的,pendingIntent的执行不是立刻的。

     PendingIntent就是一个可以在满足一定条件下执行的Intent,

  它相比于Intent的优势在于自己携带有Context对象,这样他就不必依赖于某个activity才可以存在。

目的:

    在于它所包含的Intent的操作的执行是需要满足某些条件的。

    主要的使用的地方和例子:通知Notificatio的发送,短消息SmsManager的发送和警报器AlarmManager的执行等等。


静态方法 :

getActivity(Context, int, Intent, int),

getBroadcast(Context, int, Intent, int)

 getService(Context, int, Intent, int)  

分别对应着Intent的3个行为:

跳转到一个activity组件

打开一个广播组件

打开一个服务组件。


运用举例:

AlarmManager称为全局定时器,是Android中常用的一种系统级别的提示服务,在特定的时刻为我们广播一个指定的Intent。

简单的说就是我们设定一个时间,然后在该时间到来时,AlarmManager为我们广播一个我们设定的Intent,

通常我们使用 PendingIntent

public void set(int type, long triggerAtMillis, PendingIntent operation)
功能:用于设置一次性闹钟
第一个参数表示闹钟类型,
第二个参数表示触发这个闹钟要等待的时间,与type相关
第三个参数闹钟响应的动作
参数type: 
AlarmManager.ELAPSED_REALTIME    表示闹钟在手机睡眠状态下不可用,该状态下闹钟使用相对时间(相对于系统启动开始),状态值为3;
AlarmManager.ELAPSED_REALTIME_WAKEUP    表示闹钟在睡眠状态下会唤醒系统并执行提示功能,该状态下闹钟也使用相对时间,状态值为2;
AlarmManager.RTC  表示闹钟在睡眠状态下不可用,该状态下闹钟使用绝对时间,即当前系统时间,状态值为1;
AlarmManager.RTC_WAKEUP  表示闹钟在睡眠状态下会唤醒系统并执行提示功能,该状态下闹钟使用绝对时间,状态值为0;
AlarmManager.POWER_OFF_WAKEUP  表示闹钟在手机关机状态下也能正常进行提示功能,该状态下闹钟也是用绝对时间,状态值为4;不过我测试的时候并没有,这个常量,估计和SDK有关。
参数operation:绑定了闹钟的执行动作,比如发送一个广播、给出提示等等。




关于Notification的一点愚见(PendingIntent工作流程)

PendingIntent,顾名思义,延迟的Intent。那么肯定会产生一个疑问,那就是PendingIntent究竟和Intent的区别在哪里呢? 其实PendingIntent其实就是对Inte...

Notification的用法和PendingIntent使用

  • 2014年08月12日 10:34
  • 402KB
  • 下载

Android Notification PendingIntent:当前App被kill 掉之后,当前App发送的Notification消息是否会被自动清除掉 ?

问题:  之前大家有一个争论 “当前App被kill 掉之后,当前App发送的Notification消息是否会被自动清除掉 ?”Google 为什么要设计 PendingIntent 这样...

Intent和PendingIntent的区别

  • 2015年01月07日 17:59
  • 3KB
  • 下载

PendingIntent 使用示例

  • 2012年12月22日 17:58
  • 359KB
  • 下载

手机高温警告提示内容不匹配的分析【多次调用PendingIntent.getBroadcast,intent数据不更新】

一、问题现象 两台手机进行测试,先是低温测试,其中一台弹出警告后点开并且关闭,另一台等到-18摄氏度弹出警告提示后不点开,接着使用温控箱做高温测试,在55摄氏度的时候status bar中正确显示高温...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PendingIntent
举报原因:
原因补充:

(最多只允许输入30个字)