AlarmManager 闹钟(全局定时器)

来源:互联网 发布:c语言 实现stl map 编辑:程序博客网 时间:2024/06/05 03:25

Alarm(警告、警报  “可以读成-(e老母)”),别问我为什么这么读,英语差我任性!


AlarmManager这个类提供对系统闹钟服务的访问接口。你可以为你的应用设定一个未来某个时间唤醒的功能。
当闹钟响起,实际上是系统发出了为这个闹钟注册的广播。会自动开启目标。


AlarmManager解析

1、AlarmManger不仅可用于开发闹钟应用,还可以作为一个全局定时器使用,Android应用的程序中也是通过Context的getSystemSerVice()方法来获取AlarmManger对象。

AlarmManager aManager = (AlarmManager)getSystemService(ALARM_SERVICE);

2、一旦程序获取了AlarmManger对象之后,就可以调用它的如下方法来设置定时启动制定组件。

void set(int type,long triggerAtTime,Pendinglntent operation):设置在triggerAtTime时间启动由operation参数指定的组件。其中第一个参数指定定时服务的类型,该参数可接受如下值

--》ELAPSED_REALTLME :指定从现在开始时间过了一定时间后启动operation所对应的组件。

--》ELAPAED_REALTIME_WAKEUP :指定从现在开始过了一定时间后启动operation所对应的组件。即使系统关机也会执行operation所对应的组件。

--》RTC :指定当系统调用System.currentTimeMillis()方法返回值与triggerAtTiME相等时启动operation所对应的组件。

--》RTC_WAKEUP :指定当系统调用System.currentTimeMillis()方法返回值与triggerAtTiME相等时启动operation所对应的组件。计时系统关机也会执行operation所对应的组件。

void setInexactRepeating(int type,long triggerAtTime,long interval,PendingIntent operation):设置一个周期性执行的定时任务。


void cancel(PendingIntent operation):取消AlarmManager的定时任务。


需要说明的是,从Android4.4(API19)开始,AlarmManager的机制是非准确的,不过AlarmManager新增了两个新的方法
setExact(int type,long triggerAtMiLLis,PendingIntent Operation):设置闹钟将在精确的时间内激发
setCindow(int type,long windowStartMillis,Long WindowLgengthMillis,PendingIntent operation):设置时间将在精确的时间段来激发。


下面看一个小例子:下载地址点击打开链接

http://download.csdn.net/download/bobo8945510/9612992




















































































0 0
原创粉丝点击