18

この関数を使用してスレッドを実行するコード サンプルがありますrunOnUiThread。なぜ、いつ使用する必要があるのでしょうか?

編集

AsyncTaskクラスを使用するにはどうすればよいですか?proscons??

4

2 に答える 2

22

runOnUiThread()非 UI スレッドから UI を更新する場合に使用する必要があります。たとえば、バックグラウンド スレッドから UI を更新する場合。Handler同じものにも使えます。

ドキュメントから -

指定されたアクションを UI スレッドで実行します。現在のスレッドが UI スレッドの場合、アクションはすぐに実行されます。現在のスレッドが UI スレッドでない場合、アクションは UI スレッドのイベント キューにポストされます。

構文 -

       Activity_Name.this.runOnUiThread(new Runnable() {

            @Override
            public void run() {
                // your stuff to update the UI

            }
        });

アップデート -

AsyncTask -

その場合に UI をブロックする何かを実行したいNetwork operation場合は、AsyncTask が最適なオプションです。を使用できるのと同じバックグラウンド オペレーションを実行する方法は他にもいくつかありますService。また、バックグラウンド オペレーションを実行する方法もありますIntentService。AsyncTask を使用すると、UI 作業を行うのに役立ち、バックグラウンド操作が実行されるまで UI をブロックしません。

ドキュメントから -

AsyncTask を使用すると、UI スレッドを適切かつ簡単に使用できます。このクラスを使用すると、スレッドやハンドラーを操作することなく、バックグラウンド操作を実行し、UI スレッドで結果を発行できます。

于 2012-04-13T04:48:35.120 に答える
1

スレッドから更新するuserinterfaceには、を使用する必要がありますrunOnUiThread。しかし、使用するasynctaskよりも使用する方が優れていrunonuithreadます。android-runonuithread-vs-asynctaskこのリンクはあなたを助けることができます

于 2012-04-13T04:58:52.010 に答える