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.
4

4 に答える 4

2
  • .ViewRoot $ CalledFromWrongThreadException:ビュー階層を作成した元のスレッドのみがそのビューにアクセスできます

非UIスレッドからUI要素を更新しようとしているようです。

活動の使用HandlerまたはrunOuUIThread機能、またはAsynctask必要に応じて

于 2012-06-28T06:41:14.737 に答える
1

別のスレッドで記述され、アプリケーションUIを更新しようとしているコードを見てください。

そのコードをのrunメソッドに入れる必要がありますrunOnUiThread

runOnUiThread(new Runnable() {
     public void run() {
           // COde to update UI.
    }
});
于 2012-06-28T06:42:03.583 に答える
0

UIスレッドではないスレッドでUIコンポーネントを変更しようとしています。runOnUiThread非UIスレッドからUIコンポーネントを更新する方法を見てください。

于 2012-06-28T06:41:22.927 に答える
0

スレッドを使用できますが、すべてのビュー、およびすべてのビューに関連するAPIは、メインスレッド( UIスレッドとも呼ばれます)から呼び出す必要があります。バックグラウンドスレッドからこれを行うには、ハンドラーを使用する必要があります。ハンドラーは、メッセージをUIスレッドにポストバックするオブジェクトです。

于 2012-06-28T06:46:54.533 に答える