[英]CountDownTimer getting restarted after closing and reopening the app
我试图向用户显示一个CountDownTimer
,当用户按下“ START”按钮时,该计数器立即开始减少,但是如果我关闭活动并重新打开它,则CountDownTimer会重置并重新开始。
我使用此链接来学习如何设置CountDownTimer
。
这是我的编码方式:
new CountDownTimer(ms, 1000) {
public void onTick(long millisUntilFinished) {
String hms = String.format("%02d:%02d:%02d", TimeUnit.MILLISECONDS.toHours(millisUntilFinished),
TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished) % TimeUnit.HOURS.toMinutes(1),
TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished) % TimeUnit.MINUTES.toSeconds(1));
holder.availableFor.setText(hms);
}
public void onFinish() {
holder.linearLayout.setVisibility(View.GONE);
holder.firebaseDatabase.child(itemID).setValue(null);
holder.geoFireReference.child(itemID).setValue(null);
}
}.start();
请让我知道即使用户关闭应用程序也如何保持计时器运行。
据我了解,您正在使用onClick方法创建此计时器。 尝试创建一些全局变量
CountDownTimer timer
之后,像您一样在onclick中创建它。
并在暂停状态下:
if (timer != null) {
timer.cancel
}
您必须使用服务类, 这里的链接可能会对您有所帮助。
您需要将计时器数据存储在某个全局范围内,以便一旦设置计时器就不会随活动生命周期而改变。
最佳实践建议,使用@ shahid17june回答的服务
如果您不想使用它,或者也可以使用setup变量将counttimerdata存储在应用程序类(全局数据)中,并进行适当的更新。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.