从开发一个超时取消提醒的系统开发学到的--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
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
相关文章推荐
- 一个Web系统的界面设计和开发.1
- 开发一个OA系统的设想
- 初学者如何开发出一个高质量的J2EE系统
- 初学者如何开发出一个高质量的J2EE系统
- 初学者如何开发出一个高质量的J2EE系统
- 一个Web系统的界面设计和开发.2
- 初学者如何开发出一个高质量的J2EE系统
- ADO的一次开发实践(vc通过ADO连接access数据库做的一个多功能查询系统)
- 新申请的blog 第一天 把自己以前开发的一个系统的开发日记贴上来 见笑了
- 初学者如何开发出一个高质量的J2EE系统
- 如何开发一个虚拟域名系统
- Tangram:一个基于MFC框架的柔性软件开发系统
- 开发一个自动更新的布署系统----序
- 由于最近网站内容需要更新的还是满多的,于是想开发一个采集系统。收集了一下资料。
- 初学者如何开发出一个高质量的J2EE系统
- 使用JMS和Hibernate开发一个异步日志服务系统
- 开发一个系统登录的portlet
- 初步使用Struts+hibernate开发了学校的一个小系统
- 初学者如何开发出一个高质量的J2EE系统
- 初学者如何开发出一个高质量的J2EE系统