范围: Hi,我正在用Android开发一个服务。我需要这个服务来一直运行(当设备在运行时),所以接收器用于引导
android.intent.action.BOOT_COMPLETEDAlarmManager每10分钟安排一次服务。
问题: My OS得到了一些更新,在更新之后,它从AlarmManager取消了我的服务--非调度服务。而且,只要我不重新启动设备,服务就不会启动/调度。
问题:是否对接收者有任何事件,操作系统重新启动,但设备没有?还是安装了更新,操作系统恢复等?
编辑
你好,谢谢你的链接和建议。
现在,我正在使用库Evernote来调度后台作业。
请参阅https://github.com/evernote/android-job
我接受了一个事实,即长寿服务是反模式的,引导广播可能是很棘手的。因此,我使用Evernote来安排简单的作业,以重复“满足我的需要”。它很好的工作,如预期,恢复后,设备重新启动&是兼容的"Android警报计划“管理。
只是个很棒的图书馆。
发布于 2014-01-14 19:05:14
我正在用Android开发一个服务。我需要这个服务来一直运行(当设备在运行时)
这通常是Android上的反模式。
有什么事件的接收器,操作系统是重新启动,但设备不是?
在Android中没有,因为在标准的Android中没有"OS是重新启动但设备不是“的概念。当操作系统更新时,整个设备重新启动(至少两次)作为更新过程的一部分。
您的设备制造商一定做了一些您所描述的行为。您可能希望与该制造商联系,看看他们是否对您的方案有建议。
请注意,这些结果(“它从AlarmManager杀死我的服务,非计划服务”)也将发生在用户点击应用程序的屏幕上的“强制停止”时。在用户从主屏幕启动应用程序或显式调用某个组件之前,您的代码将不会再次运行,即使在重新启动之后也是如此。
https://stackoverflow.com/questions/21121577
复制相似问题