2012-06-28 111 views
1
06-28 12:07:10.881: E/(930): {total=21 secs, date2=28-06-2012, time2=9:43:09 AM, time1=9:42:48 AM, date1=28-06-2012} 
06-28 12:07:11.131: E/testing(930): exception:android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views. 
06-28 12:07:11.160: E/(930): {total=24 secs, date2=28-06-2012, time2=10:45:02 AM, time1=10:44:38 AM, date1=28-06-2012} 
06-28 12:07:11.601: E/testing(930): exception:java.lang.IllegalArgumentException: The observer is null. 
+0

你正試圖從非UI線程更新UI元素... –

+0

確保你不是從一個新線程或AsyncTask調用它..看到這個http://stackoverflow.com/questions/5185015/updating- android-ui-using-threads – ngesh

回答

2
  • .ViewRoot $ CalledFromWrongThreadException explan此異常:只有原來的線程 創建視圖層次可以觸摸其觀點

看起來你要更新UI元素來自非UI線程。

應該使用的活動HandlerrunOuUIThread功能或Asynctask根據自己的需要

+0

嗨Dheeresh,我們也可以,我們HandlerThread! :) –

+0

嗨伊姆蘭...是的,我們可以..... –

+0

請提供一些示例代碼 – raju

0

您正試圖修改一個線程不是UI線程UI組件。查看runOnUiThread以從非UI線程更新UI組件。

1

查看在單獨的線程中編寫的代碼,它正在嘗試更新您的應用程序UI。

您需要將該代碼放在runOnUiThread的運行方法中。

runOnUiThread(new Runnable() { 
    public void run() { 
      // COde to update UI. 
    } 
}); 
0

可以使用線程,但各方面的意見,以及所有相關的API,必須從主線程調用的視圖(也稱爲UI線程)。爲了從後臺線程做到這一點,你需要使用Handler。 A 處理程序是一個將消息發送回UI線程的對象。