关于AlarmManager的生命周期

bbjyczy 2013-01-22 03:34:52
首先诅咒方兴兵早日去死,连“周期“都不能GOOGLE,其祖坟早日被人挖,其后代均死于非命。
请教大神
在ACTIVITY里声明一个AlarmManager。当这个进程被强制停止后,AlarmManager的Repeating还在工作吗?

我知道broadCast其进程被强制停止后,broadCast仍然在工作。

...全文
319 8 点赞 打赏 收藏 举报
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
zhujunhua2012 2013-12-19
在 设置->应用信息->强行停止,这个时候, AlarmManager是会被kill掉的啊。。。
  • 打赏
  • 举报
回复
vicluo 2013-01-28
毫无疑问可以继续工作。 ams(alarmamanagerservice,下同)是运行在system_server进程,当你注册一个alarm到ams中去的时候,只要你没有主动的取消他并且时间也没到,那么其肯定会在制定的时间内回调你的pendingintent。 因为你的所有的intent的内容都是保存在activitymanagerservice的mIntentSenderRecords的一个hashmap中,并不会因为你的进程的结束而销毁,只要你注册到ams中,同时没有主动去cancel,那么到时见就会执行你的pendingintent 可以看下这篇文章 http://blog.csdn.net/vicluo/article/details/8484939
  • 打赏
  • 举报
回复
oyq_yangy 2013-01-22
引用 2 楼 ningzhiyu 的回复:
能正常工作的 已经添加到 alarmmanagerservice里面的,alarm的运行跟当前activity是否活着没有多大关系,主要是alarmmanagerservice和添加时的intent吧
顶,能工作,只要system_server活着
  • 打赏
  • 举报
回复
ningzhiyu 2013-01-22
能正常工作的 已经添加到 alarmmanagerservice里面的,alarm的运行跟当前activity是否活着没有多大关系,主要是alarmmanagerservice和添加时的intent吧
  • 打赏
  • 举报
回复
qinjuning 2013-01-22
为何不加Log看看呢 ? 如果Activity结束掉了,就直接cancel掉该AlarmManager吧。 推测的话,应该可以工作。
  • 打赏
  • 举报
回复
oyq_yangy 2013-01-22
http://bbs.csdn.net/topics/370038197 alarmmanagerservice是service运行在system_server进程,alarmmanager是client,运行在你的进程。
  • 打赏
  • 举报
回复
bbjyczy 2013-01-22
假设alarmmanagerservice一旦被声明后,就脱离进程存在。那么用alarmmanagerservice调用一个SERVICE应该需要设置FLAG成为类似NEW_TASK这样的。可是具体怎么用代码实现,我就不知道了。普通的ACTIVITY调用SERVICE,要设置FLAG为NEW_TASK,我知道。
  • 打赏
  • 举报
回复
bbjyczy 2013-01-22
谢谢楼上各位的指点。貌似网络上对 alarmmanagerservice有各种解释,有说进程结束 alarmmanagerservice失去生命,也有说进程结束 alarmmanagerservice不会结束生命。 本人在activity里声明了一个 alarmmanagerservice去repeat一个SERVICE.进程结束后,service是没有反映的。当然也许是service被结束了,所以service没有反映。我在验证一下
  • 打赏
  • 举报
回复
相关推荐
发帖
Android
加入

7.9w+

社区成员

移动平台 Android
申请成为版主
帖子事件
创建了帖子
2013-01-22 03:34
社区公告
暂无公告