【发布时间】:2013-11-07 17:43:32
【问题描述】:
我有一个后台 Android 服务。它在后台运行,检查 URL 以获取某些结果。如果结果发生变化,应用程序会向用户发送通知。我希望这项服务每 3 小时运行一次。我的问题是何时以及如何启动服务?
- 一般行为是创建广播接收器。
- 然后在接收者收到
ACTION_BOOT_COMPLETED时启动服务。 - 此外,当接收器完成启动时,接收器将使用 AlarmManager 并创建一个警报,每 3 小时运行一次。
但是安装应用程序后,如果用户没有重启他/她的手机怎么办?如果用户没有启动,AlarmManager 不会创建警报。
- 所以另一个选项是在用户首次运行应用程序时创建警报。
- 如果用户重新启动应用程序怎么办?我应该用
AlarmManager.cancel取消所有以前的警报并重新创建警报吗?
那么,您在哪些条件下为您的 Android 应用程序设置警报?
【问题讨论】:
-
AFAIK,为给定的 PendingIntent(基于给定的 Intent)设置警报会取消之前针对同一 Intent 的警报。试一试。
标签: android service alarmmanager