【问题标题】:Android system updates eventAndroid系统更新事件
【发布时间】:2014-01-14 18:51:29
【问题描述】:

范围:您好,我正在使用 Android API 开发服务。我需要这个服务来运行整个时间(当设备运行时),所以接收器用于 BOOT

android.intent.action.BOOT_COMPLETED

已设置,服务由 AlarmManager 每 10 分钟安排一次。

问题:我的操作系统得到了一些更新,更新后,它终止了我的服务,从 AlarmManager 取消调度服务。只要我不重新启动我的设备,服务就没有启动/计划。

问题: 接收器是否有任何事件,即操作系统已重新启动但设备没有?还是安装了更新、恢复了操作系统等?

编辑

您好,感谢您的链接和建议。
现在,我正在使用 Evernote 库来安排后台作业。
https://github.com/evernote/android-job
我接受了一个事实,即长期服务是反模式的,而 BOOT 广播可能会很棘手。因此,我使用 Evernote 安排简单的工作以重复“满足我的需求”。它按预期工作得很好,在设备重启后恢复并且与“Android警报计划”管理兼容。
只是一个很棒的图书馆。

【问题讨论】:

标签: android android-service


【解决方案1】:

我正在使用 Android API 开发服务。我需要这个服务来运行整个时间(当设备运行时)

这通常是 Android 上的反模式。

接收器是否有任何事件,即操作系统已重新启动但设备没有?

Android SDK 中没有,因为标准 Android 中没有“操作系统已重启但设备未重启”的概念。当操作系统更新时,整个设备会重新启动(至少两次)作为更新过程的一部分。

您的设备制造商一定做了与您描述的行为类似的事情。您不妨联系该制造商,看看他们是否对您的方案有建议。

请注意,当用户在设置中点击您应用屏幕上的“强制停止”时,也会出现这些结果(“它会终止我的服务,从 AlarmManager 取消调度服务”)。您的代码将不会再次运行,即使在重新启动后,直到用户从主屏幕启动您的应用程序,或其他明确调用您的组件之一。

【讨论】:

  • 接受为答案。更新是制造商的事情,所以 Android API 在这里没有帮助。用户发誓设备没有重新启动。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多