2016-04-23 57 views
-1

我有一個計時器,它在活動的OnCreate方法上運行,如下所示。運行時,計時器應該按照原樣增加。顯示:「runOnUIThread」每當我回到活動時遞增運行

00:00, 00:01, 00: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); 

然而,當我重溫活動,定時器的間隔增加。如果我重溫它在第一時間,所述間隔變爲2即

00:00,00:02 , 00:04, 等

重溫它再次使間隔3即

00:00, 00:03, 0點06分, 等

並且間隔不斷增加。 我推斷runOnUIThread方法正在運行n次,其中n是onCreate被訪問的次數,但我真的不知道該怎麼辦。

+1

在OnDestroy方法中配置您的計時器。 – Arijoon

回答

0

使用Timer構造函數將其指定爲守護進程new Timer(true),這樣如果它退出,計時器線程也會退出。 例如,在退出onDestroyonPause之前還要考慮cancelling計時器。

相關問題