如何在Android中正确实现计时器?

时间:2017-02-12 14:09:36

标签: java android timer

我正在尝试创建一个跟踪工作时间的简单应用。 MainActivity具有一个TextView,代表一个计时器和四个按钮,用于启动,暂停,恢复和停止。

到目前为止,我有两个用于对计时器进行建模的类,TimerCountdown和TimerCountup(用于加班),使用android.os.CountDownTimer;启动计时器,更新TextView并触发系统通知,以便在用户完成后通知用户。 TimerCountdown每秒更新tView,8小时后它会向用户发送通知,并启动TimerCountup跟踪加班2小时。

如果应用程序在后台,确保这些计时器继续运行的正确方法是什么?我是否必须将两个Timer类包装到服务中?如果是这样,我将如何做到这一点,因为他们持有对上下文的引用,这显然是不允许的?不幸的是,android.os.CountDownTimer;的文档没有提到应用程序进入后台时的行为方式。为了在应用程序被销毁后恢复进度,我最终可能会使用序列化对象,我只是不确定如何正确处理后台活动。

此外,在计时器达到0后,确保通知(例如振动)的最佳方法是什么?该应用程序可能会在当时处于后台,或者被销毁。

1 个答案:

答案 0 :(得分:0)

如果我理解你正确你需要一个可以在后台工作的计时器,那么你应该扩展服务类。有一个类似于你的答案问题。你可以查看Android count down timer in background < / p>