关闭

PendingIntent

标签: 安卓之PendingIntent
251人阅读 评论(0) 收藏 举报
分类:

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




0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:30426次
    • 积分:869
    • 等级:
    • 排名:千里之外
    • 原创:54篇
    • 转载:10篇
    • 译文:0篇
    • 评论:11条
    最新评论