2012-09-02 50 views
0

我遇到了一個可能會讓很多人感興趣的問題(初學者)。讓我告訴你的代碼:爲什麼在線程完成之前TextView不會改變?

startButton.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View v) { 
      startButton.setVisibility(View.GONE); 
      if (!started) { 
       started = true; 
       timer.start(); 
       information.append("Start 1\n"); 
       tester1.start(); 
       if (cores >= 2) { 
        information.append("Start 2\n"); 
        tester2.start(); 
       } 
       if (cores >= 3) { 
        information.append("Start 3\n"); 
        tester3.start(); 
       } 
       if (cores >= 4) { 
        information.append("Start 4\n"); 
        tester4.start(); 
       } 

      } 
     } 
    }); 

計時器,並且所有測試人員都是先前聲明的線程。 信息是一個TextView。

問題是,當我運行應用程序時,即使線程需要10秒完成,線程完成後textview也會改變。這發生在模擬器(android 2.3)和真實(android 4.0)設備上。奇怪的是,線程大致同時開始。

回答

0

必須從主線程更新任何UI組件。

例如

runOnUiThread(new Runnable() { 
    public void run() { 
     someTextView.setText(someResultVariable); 
    } 
}); 
+0

感謝。看來這5個線程花了大約1.5秒的時間加載,所以我放了一個閃屏,問題就沒有了。 – Bogdan

相關問題