android - Android定时后台任务最佳实践

标签 android service timer background scheduled-tasks

我正在创建一个通知应用程序,它将在用户设置提醒通知后提醒用户。我目前的实现逻辑是:

  1. 创建一个服务,当用户打开应用时该服务开始在后台运行。
  2. 在服务的 onCreate() 方法中,我正在实现一个计时器任务,该任务将在 5000 毫秒间隔后重复,并调用一个方法,该方法将检查用户设置的所有提醒,并通知用户是否为当前时间设置了任何提醒。
  3. 如果用户关闭手机,我会使用广播接收器在 Boot_Completed 事件上运行服务。

这个实现运行良好,我没有遇到任何问题,但我担心这是一个好的做法吗?请记住,每 5 秒运行和检查一次的服务会消耗电池。此外,如果用户打开耐力模式、省电模式或任何此类模式,操作系统是否会终止我的服务。我能做些什么来优先保证我的服务不被杀死。

如果有其他更有效的方法来实现此类任务,我想在我的项目中实现。

期待您的建议。

非常感谢。

最佳答案

最好的方法是使用警报接收器的唤醒 Intent 服务,如此处所述

https://github.com/commonsguy/cwac-wakeful

关于android - Android定时后台任务最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30609505/

相关文章:

android - 有没有办法隐藏 NumberPicker 中的上限值和下限值

android - 将对象从 Activity 传递到 Fragments 是通过引用传递

Android Material Design 分隔线颜色

c++ - 计时器功能扭曲可拖动的线段

C#如何及时停止线程?

android - 解码电池值

c# - 最佳使用 Windows 服务重复程序调用

java - 定期刷新大对象

android - 如果我尝试启动服务,为什么会收到 InstantiationException?

java - JFrame 组件之间的触发延迟