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

时间:2012-02-18 10:11:15

标签: android service timer task

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

  1. 独立类中的计时器并在计时器到期时重复执行任务A?
  2. 执行任务A的安卓后台服务。
  3. 选择上述方法有哪些优缺点?

1 个答案:

答案 0 :(得分:1)

  

选择上述方法有哪些优缺点?

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

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

  

我的任务需要将位置更新为我的java类变量,该变量不是活动,必须使用HTTPS更新为Web服务器

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