【发布时间】:2017-02-12 14:09:35
【问题描述】:
我正在尝试制作一个简单的应用程序来跟踪工作时间。 MainActivity 具有一个表示计时器的 TextView 和四个按钮,用于启动、暂停、恢复和停止。
到目前为止,我有两个用于建模计时器的类,TimerCountdown 和 TimerCountup(用于超时),它们使用android.os.CountDownTimer; 启动计时器,更新 TextView 并触发系统通知以在用户完成后通知用户。 TimerCountdown 每秒更新 tView,8 小时后它会向用户发送通知并启动 TimerCountup 以跟踪另外 2 小时的超时。
如果应用程序在后台,确保这些计时器继续运行的正确方法是什么?我是否必须将两个 Timer 类包装成一个服务?如果是这样,我该怎么做,因为他们持有对上下文的引用,这显然是不允许的?不幸的是,android.os.CountDownTimer; 的文档没有提到当应用程序进入后台时它的行为方式。为了在应用程序被销毁后恢复进度,我最终可能会使用序列化对象,我只是不确定如何正确处理后台活动。
此外,确保在计时器达到 0 后触发通知(例如振动)的最佳方法是什么?到那时,该应用程序可能会在后台运行或被销毁。
【问题讨论】: