如何在Android中正确实现定时器



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

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

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

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

如果我正确理解你,你想要一个可以在后台工作的定时器,要做到这一点,你应该扩展服务类。有一个已回答的问题与你的问题相似。你可以在后台中查看Android倒计时

最新更新