0

私はCountDownTimerをユーザーに表示しようとしていますが、ユーザーは直ちに「START」ボタンを押しますが、アクティビティを終了して再開すると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メソッドで作成していることを理解しています。 あなたがそうであるように、onclickの中でそれを作成するいくつかのグローバル変数にその後

CountDownTimer timer 

を作成してください。

とonpauseで:

if (timer != null) { 
timer.cancel 

}

0

あなたはhere サービスクラスを使用する必要があなたを助けるかもしれリンクです。

-1

一度設定したタイマーがアクティビティライフサイクルで変更されないように、タイマーデータをグローバルスコープに格納する必要があります。あなたはそれを使用しない場合も

shahid17june @によって答え、またはセットアップ変数はアプリケーションクラス(グローバルデータ)にcounttimerdata格納し、それを適切に更新するよう

ベストプラクティスは、利用サービスを示唆しています。

関連する問題