当进程被杀死时,AlarmManager中的闹钟会被清除。

6
我是一名android的新手,请耐心等待我的学习。 我的主Activity会在闹钟管理器中创建一个特定时间触发的闹钟,同时也会创建Broadcast接收器,以便接收闹钟触发的Intent。一切都运行良好,直到任务管理器关闭了我的应用程序。 我检查了AlarmManager中的PendingIntent列表,并验证了我的闹钟已从Alarm Manager中删除,我尝试从服务中添加服务并注册闹钟,我读到有可能是因为Broadcast接收器的IntentFilter在代码中定义而不是在清单中定义,所以在应用程序进程被杀死后也会被杀死。我困在这个问题上已经两个星期了 :(,非常困惑,我的设计是否有误?
以下是我的需求: 1. 闹钟非常可靠,即使应用程序被杀死或手机重启也能正常工作。 2. 同样适用于广播接收器。
提前感谢您的帮助。
1个回答

7
如果用户强制停止或终止您的应用程序,则您的闹钟将被注销。在 Android 3.1+ 上,除非用户手动启动您的一个活动,否则您的应用程序将不再运行。
关于此问题,您无能为力,唯一的解决方法是尽力编写高质量的应用程序,让用户没有必要或愿望去强制停止。

另外再加一个.apk,重新启动第一个WatchdogService,反之亦然?虽然不道德,但这样行得通吗? - n00b
1
请明确一下,这只是由用户发起的强制终止吗?如果系统终止了我的应用程序(例如由于临时低内存条件),我是否应该期望稍后收到警报? - Michael
3
@Michael:正常的进程终止(例如内存不足杀手)不会取消已计划的“AlarmManager”事件。 - CommonsWare

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接