0

我試圖向用戶顯示一個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(); 

請讓我知道如何保持定時器去,即使用戶關閉應用程序。

回答

1

據我所知你在onClick方法中創建這個計時器。 嘗試創建一些全局變量

CountDownTimer timer 

之後,在創建的onclick它,因爲你做的。

,並在onPause:

if (timer != null) { 
timer.cancel 

}

-1

您需要將定時器數據存儲在某個全局範圍內,以便設置的定時器不會隨着活動生命週期而改變。

最佳實踐建議,使用服務像shahid17june

還回答了@如果你不想使用,或設置變量counttimerdata存儲在應用程序類(全局數據),並適當地更新。

相關問題