【问题标题】:How to implement countdown timer [re-open activity]?如何实现倒计时【重开活动】?
【发布时间】:2016-08-23 10:51:39
【问题描述】:

如果我需要以下用法,我应该如何实现倒数计时器:

  1. 用户开始活动 A;
  2. 在活动 A 中,他启动了计时器;
  3. 用户离开活动 A,计时器在后台运行;
  4. 用户返回活动 A;
  5. 用户查看计时器的当前(更新)值;

我尝试使用倒数计时器,但在第 5 步失败 - 在返回到 ativity A 后,我无法在 TextView 中看到值(在 LogCat 中)并且系统启动另一个计时器(这样,每个重新打开的活动都会启动一个更多计时器)。我应该改用服务还是……请给我指路。

【问题讨论】:

  • 您应该使用计时器服务(后台),并在您返回活动 A 时恢复其信息。希望这将有助于stackoverflow.com/questions/16510462/…
  • 您应该在 onPause 和 onResume 中的 sharedprefs 中保存时间戳,您应该获取当前时间和保存的时间戳,这些时间戳的差异将为您提供经过的时间。现在用剩余时间启动一个新的计时器。
  • 将你的文本视图设为静态
  • @rajesh,兄弟,我是按照你的方式做的。有用。如果你像一个答案一样发布它,我会标记它。

标签: android timer


【解决方案1】:

您无法确定在您离开活动后它是否仍然存在。系统可以随时杀死它。

此用例的解决方案可能是:

  1. 在前台启动计时器Service。此类服务有更好的生存机会。
  2. 当您离开活动时,您可以保存上次计时器值和上次时间戳,并在重新创建活动后使用此信息恢复计时器。

PS。如果您还想在计时器结束时发出警报,您应该使用AlarmManager,但请记住来自 android 6+ (M) 的限制。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多