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