AlarmManager
的文档开始
注意:警报管理器适用于您希望在特定时间运行应用程序代码的情况,即使您的应用程序当前未运行也是如此。对于正常的计时操作(刻度,超时等),使用Handler会更容易,也更有效。
但是,一旦我的应用程序关闭(强制从任务管理器关闭),我的警报就不起作用,并且永远不会在广播接收器内调用OnReceive
方法。
我的目标是4.x。
发生了什么事?
答案 0 :(得分:10)
@Shrikant所说的几乎就是答案。
更长的版本是,如果用户必须手动强制关闭它,Android会假设应用程序出现问题。因此,在用户手动运行应用程序至少一次之前,不会启动与应用程序相关的所有活动(BroadcastReceiver,警报等)。例如,在用户运行应用程序之前关闭和打开设备时,将不会调用应用程序的启动BroadcastReceiver,然后下一个设备启动事件将被传递到应用程序的BroadcastReceiver。
此行为由Android框架开发人员设计确认:https://groups.google.com/forum/?fromgroups=#!topic/android-developers/anUoem0qrxU
*为语法和编辑而编辑添加了示例行为