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