Android - 使用服务作为计时器?

时间:2013-09-18 12:17:19

标签: android

我已阅读并重新阅读文档但我现在仍然确定使用服务(以及如何)是保持计时器运行的正确方法。

我基本上想要一个倒数计时器,但我希望它即使应用程序关闭也会不间断地运行(并显示为持续通知)。当应用程序中的某个活动被打开(恢复,打开,通过点击通知启动)时,我希望它能够从计时器中获取当前值(不超过每秒一次)。如果应用程序关闭,我仍然希望计时器能够使用/启动我的应用程序的活动或其他服务(或访问数据库)。

因此,如果我正确理解Android开发人员文档,我应该使用一个已启动的服务(因为启动它时应该能够在应用程序关闭时执行其操作)并绑定(因此活动可以从中获取数据)它)。然后我搜索了Stack Overflow的类似主题,有些人建议使用IntentService(但是它可以将数据发送到活动吗?),还是Handlers甚至是AlarmManager。

我真的很困惑,我宁愿能够从一开始就选择正确的方法(而不是完成应用程序,然后意识到我的方法浪费了很多电池或其他东西)。文档的问题是它回答了它认为我有的问题,所以我不得不问一个真实的人。

1 个答案:

答案 0 :(得分:1)

我的建议是:

  1. 当用户启动计时器时,保存当前系统时间戳。
  2. 在您的用户界面中:每N毫秒只读取已保存的值并将其与当前时间戳进行比较。这给你一个diff =经过的时间。
  3. 您不需要任何计时器/服务/警报管理器。每次用户返回您的应用程序时,您只需执行步骤№2即可显示已用时间。