PendingIntent

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:绑定了闹钟的执行动作,比如发送一个广播、给出提示等等。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值