您的位置:首页 > 其它

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

2015-03-03 17:13 344 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: