我正在尝试向用户显示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();
请告诉我即使用户关闭应用程序,如何让计时器继续运行。
答案 0 :(得分:1)
据我所知,你在onClick方法中创建了这个计时器。 尝试创建一些全局变量
CountDownTimer timer
然后在onclick上创建它,就像你一样。
并且暂停:
if (timer != null) {
timer.cancel
}
答案 1 :(得分:0)
您必须使用服务类here 是可以帮助你的链接。
答案 2 :(得分:-1)
您需要将计时器数据存储在某个全局范围内,这样一旦设置的计时器不会随着活动生命周期而改变。
最佳做法建议,使用@ shahid17june回答的服务
如果你不想使用它,或者设置变量来将counttimerdata存储在应用程序类(全局数据)中,并进行适当的更新。