2012-04-20 63 views
5

我是机器人中的新手,请耐心等待。 我的主要活动是在应该在特定时间开火的报警管理器中创建并报警,我的主Activity还创建了接收报警开启的Intent的广播接收器,一切正常,直到任务管理器查杀我的App。 我已经检查了AlarmManager中的PendingIntent列表,并确认我的闹钟已经从闹钟管理器中删除,我尝试添加服务并注册服务中的闹钟,我有可能是因为我的广播接收器的IntentFilter是在代码中定义,而不是在清单中它会在应用程序被杀后死亡,并且我在这个问题上停留了两周:-(很大的混淆,我的设计是错误的?当进程死亡时,AlarmManager中的闹钟被擦除

这是我的需求:

  1. 该警报将是非常可靠的,即使应用程序被杀害或者即使手机重启。
  2. 同去的广播接收器。

谢谢你在前进,

回答

6

如果用户任务,杀死或强制停止您的应用程序,你报警注册。而且,在Android 3.1+上,只有用户手动启动您的某个活动后,您的应用才会再次运行。

除了尽力编写高质量的应用程序,用户不需要或希望强制停止,您无能为力。

+0

另一个.apk如何重新启动WatchdogService,反之亦然?不道德,但会行吗? – n00b 2012-12-12 15:34:57

+0

要清楚,这是唯一来自*用户*发起的强制杀手?如果系统杀死我的应用程序(例如,由于暂时的低内存条件),我是否应该期望在稍后获得警报? – Michael 2015-01-25 00:03:02

+2

@Michael:正常的进程终止,比如内存不足的杀手,不会取消预定的AlarmManager事件。 – CommonsWare 2015-01-25 00:04:08