android - 为后台任务选择哪一个 - 具有重复任务的计时器或具有循环的服务?

标签 android service timer task

当我在我的应用程序中收到广播时,我有一个重复的任务(任务 A)要做。我需要知道在执行重复任务时这些选项中哪一个更好?

  1. 独立类中的计时器并在计时器到期时重复执行任务 A?
  2. 执行任务 A 的 android 后台服务。

选择上述方法的优缺点是什么?

最佳答案

what are the pros and cons in choosing the above methods?

您似乎假设所有可能的“任务 A”实现都是平等的。您似乎还假设所有时期(一毫秒到一个世纪)都是平等的。这些都不是真的。

抽象地回答你的问题是不可能的,要解释所有的可能性需要几十页。

My task need to update the location to my java class variable which is not an activity and has to update to a webserver using HTTPS

如果您需要使用设备位置定期更新 Web 服务器,并且轮询周期合理(例如,每 30 分钟),您最好的选择是使用 AlarmManager 和一个 服务。我写了一个LocationPoller这是为这种情况设计的,另一个开发人员有 improved upon .请记住,可能无法在任何给定时刻确定设备的位置,因此您需要有一个“超时”机制,以防找不到位置,因为找到位置会占用 CPU(和 GPS radio ,在相关的地方)开机。 LocationPoller 有这样一个“超时”。

关于android - 为后台任务选择哪一个 - 具有重复任务的计时器或具有循环的服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9340286/

相关文章:

android - 在android模拟器文件系统上写

java - 通过服务管理与 mysql 的连接

javascript - 如何在幻灯片中设置计时器以显示所选内容?

android - 在显示布局之前检测 TextVIew 是否被椭圆化

android - 使用 okHttp 固定证书

java - 如何在 ASyncTask 剥离完成后结束 Android 服务?

iphone - 如何在预定时间发送短信

timer - Linux 内核中的 hrtimer 重复任务

android - Android 库项目可以是单个项目(而不是多项目构建)吗?

Android 通知 FLAG_AUTO_CANCEL 不工作