2012-04-13 17 views
0

我發佈了一個關於如何在計時器任務中更改UI元素的問題(here),現在沒問題。如何更改TimerTask中的值無法崩潰,因爲android中的其他線程?

但是當我有這樣的代碼:

 countInt = 0; 
     timer = new Timer(); 
     timer.schedule(new TimerTask() { 
      public void run() { 
       countInt = countInt + 1; 
      } 
     }, 1000); 

的counterInt VAR保存在哪裏還這個代碼是在活動

怎麼沒有崩潰修改這個值?

+0

什麼樣的崩潰? – njzk2 2012-04-13 08:52:06

回答

2

我認爲有兩種可能性:

1)請countInt成一個Integer對象,到處都用它同步訪問它:

Integer countInt=0; 

synchronized(countInt){ 
    countInt++; 
} 

2)使用AtomicInteger,可能連工作更好,因爲它不會阻塞任何線程。這可以防止UI被鎖定。

相關問題