0

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

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

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

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

4

1 回答 1

1

我的建议是:

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