2016-04-23 9 views
-1

アクティビティのOnCreateメソッドで実行されるタイマーがあります。実行すると、タイマーは必要に応じて増分されます。表示:「runOnUIThread」アクティビティに戻るたびにインクリメンタルに実行されます

00:00 午後12時01分、午後12時02分 、 など

final Timer timer = new Timer(); 
     final TimerTask timerTask = new TimerTask(){ 
      @Override 
      public void run() { 
       runOnUiThread(new Runnable() { 
        @Override 
        public void run() { 
         sdf.setTimeZone(TimeZone.getTimeZone("UTC")); 
         String timer = sdf.format(new Date(counter * 1000L)); 
         timerText.setText(timer); 
         counter++; 

        } 
       }); 
      }}; 
timer.schedule(timerTask, 0, 1000); 

しかし、私は活動、タイマーの間隔が増加を再訪するとき。私はそれを最初に再訪した場合、間隔は、それが再び3すなわち間隔を作る再訪

午後12時2すなわち

、 午後12時02分、午後12時04 、 など

になります

00:00 夜12時03分、 0:06、

そして間隔は増分し続けます。 runOnUIThreadメソッドが実行されていることを推測しましたn回、nは、onCreateがアクセスされた回数ですが、実際に何をすべきかわかりません。

+1

タイマーをOnDestroyメソッドで処理します。 – Arijoon

答えて

0

デーモンnew Timer(true)であることを指定するTimerコンストラクタを使用して、終了するとタイマースレッドも終了するようにします。 例えば、onDestroyまたはonPauseに出る前に、cancellingタイマーを考えてみてください。

関連する問題