Android 计划后台任务的最佳实践
Posted
技术标签:
【中文标题】Android 计划后台任务的最佳实践【英文标题】:Best practice for scehduled background task Android 【发布时间】:2015-08-17 00:54:43 【问题描述】:我正在创建一个通知应用程序,它会在用户设置提醒通知后提醒他们。我目前的实现逻辑是:
-
创建一个服务,当用户打开他们的应用程序时,该服务开始在后台运行。
在服务的 onCreate() 方法中,我正在实现一个 Timer 任务,该任务将在 5000 毫秒间隔后重复并调用一个方法,该方法将检查用户设置的所有提醒,并在当前时间设置任何提醒时通知用户。
我使用广播接收器在 Boot_Completed 事件上运行服务,以防万一用户关闭手机。
这个实现运行良好,我没有遇到任何问题,但我担心这是一个好的做法吗?请记住,每 5 秒运行和检查一次服务会消耗电池电量。此外,如果用户打开耐力模式、省电模式或任何此类模式,操作系统会终止我的服务。我可以做些什么来优先考虑我的服务不被杀死。
如果有任何其他更有效的方式来实现这类任务,我想在我的项目中实现它。
期待建议。
非常感谢。
【问题讨论】:
【参考方案1】:最好的方法是这里提到的带有警报接收器的唤醒意图服务
https://github.com/commonsguy/cwac-wakeful
【讨论】:
【参考方案2】:一切都好,但使用AlarmManager.setRepeating()
作为计时器。即使你的应用被杀,意图也会到来。
【讨论】:
以上是关于Android 计划后台任务的最佳实践的主要内容,如果未能解决你的问题,请参考以下文章
与来自服务的活动(LocalService)通信 - Android 最佳实践