从开发一个超时取消提醒的系统开发学到的--Mi136

本文详细介绍了Android应用中AlarmManager的使用方法,包括获取管理器、设置定时任务及重复执行任务。重点讨论了其在Activity内的声明及生命周期问题,强调了AlarmManager的全局定时特性,以及其在强制停止进程后仍能正常工作的机制。

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

AlarmManager:

AlarmManager的使用机制有的称呼为全局定时器,有的称呼为闹钟。通过对它的使用,个人觉得叫全局定时器比较合适,其实它的作用和Timer有点相似。都有两种相似的用法:(1)在指定时长后执行某项操作(2)周期性的执行某项操作
使用的步骤:
第一:获取管理器。AlarmManager alarmManager = this.getSystemService(ALARM_SERVICE);
第二:通过AlarmManager的set和setRepeating方法定时。可以通过cancel()方法取消定时。

AlarmManager所使用的Intent为PendingIntent,他与Intent的区别在于,PendingIntent包含了动作,所以不用像Intent一样使用StartActivity StartService SendBroadcast来启动。


衍生问题:在ACTIVITY里声明一个AlarmManager。当这个进程被强制停止后,AlarmManager的Repeating还在工作吗?

如果是BroadCast,则仍然在工作。

AlarmManager的话,也可以继续工作。
ams(alarmamanagerservice,下同)是运行在system_server进程,当你注册一个alarm到ams中去的时候,只要你没有主动的取消他并且时间也没到,那么其肯定会在制定的时间内回调你的pendingintent。
因为你的所有的intent的内容都是保存在activitymanagerservice的mIntentSenderRecords的一个hashmap中,并不会因为你的进程的结束而销毁,只要你注册到ams中,同时没有主动去cancel,那么到时见就会执行你的pendingintent




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值