CountDownTimer在关闭并重新打开应用程序后重新启动
问题描述:
我试图向用户显示一个CountDownTimer
,用户立即开始减少用户按下'开始'按钮,但如果我关闭活动并重新打开它,CountDownTimer正在获取重新设置并重新开始。CountDownTimer在关闭并重新打开应用程序后重新启动
我用这个link学习如何设置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它,因为你做的。
,并在onPause:
if (timer != null) {
timer.cancel
}
答
您需要将定时器数据存储在某个全局范围内,以便设置的定时器不会随着活动生命周期而改变。
最佳实践建议,使用服务像shahid17june
还回答了@如果你不想使用,或设置变量counttimerdata存储在应用程序类(全局数据),并适当地更新。