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 

}

你必须使用服务类here 是可以帮助你的链接。

您需要将定时器数据存储在某个全局范围内,以便设置的定时器不会随着活动生命周期而改变。

最佳实践建议,使用服务像shahid17june

还回答了@如果你不想使用,或设置变量counttimerdata存储在应用程序类(全局数据),并适当地更新。