AlarmManager 闹钟(全局定时器)

AlarmManager是Android系统提供的闹钟服务接口,可以用于开发闹钟应用或作为全局定时器。通过Context的getSystemService()获取对象后,可以设置定时启动指定组件。主要方法包括set()、setInexactRepeating()和cancel(),分别用于一次性定时、周期性定时和取消定时任务。在API19及以上,为了优化电源管理,AlarmManager的定时变得不精确,新增了setExact()和setWindow()方法以实现更精确的定时。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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.youkuaiyun.com/download/bobo8945510/9612992




















































































评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值