【问题标题】:How to create a countdown timer that stops and "waits" when the screen is off, resumes when back on. Android如何创建一个倒数计时器,当屏幕关闭时停止并“等待”,重新打开时恢复。安卓
【发布时间】:2016-01-24 15:34:57
【问题描述】:
如何创建一个倒数计时器,它在屏幕关闭时停止并“等待”,在重新打开时恢复。
正如标题所说,如何在 Android Studio 中编写一个基本的倒计时计时器,当用户关闭手机(屏幕关闭)时停止,并在屏幕重新打开时重新启动。在这方面仍然是一个完整的菜鸟,我只需要可以工作并执行此操作的基本代码。
谢谢
我已经有了一个基本的界面...
【问题讨论】:
标签:
android
android-studio
timer
screen
countdown
【解决方案1】:
使用带有 Runnable 的 Handler,每秒调用一次。
Handler handler = new Handler();
int countdown = 300; // set countdown value in seconds
Runnable countdownRunnable = new Runnable() {
@Override
public void run() {
countdown--;
if(countdown == 0) {
// countdown finished
} else {
handler.postDelayed(this, 1000);
}
}
}
首先,以handler.post(countdownRunnable) 开始倒计时。在 Activity/Fragment onStop() 中,使用 handler.removeCallbacks(countdownRunnable); 从处理程序中删除可运行对象,然后使用 handler.post(countdownRunnable) 在 onStart() 中再次添加它。
另外,不要忘记保存和恢复状态(当前倒计时值)。