2

これは非常にばかげた質問である可能性が高いことは承知していますが、ハンドラーのポイントを完全に理解することはできません。ハンドラーはメインスレッドで実行され、ワー​​カースレッドと一緒に最も一般的に使用されるようですが、ワーカースレッドがハンドラーと一緒にスレッドを作成するアクティビティではなく、呼び出し元のアクティビティでメソッドを呼び出すことができないのはなぜですか?メッセージを受信するには?

繰り返しになりますが、質問を知らなかったことをお詫びしますが、オンラインで見つけたのはハンドラーの使用方法に関するチュートリアルだけで、Pro Android 3の本では質問が解決されません(または、愚かすぎて正しく理解できません!)

または、さらに言えば、UIを問題なく変更できるAsyncTasksでそれらを使用するのはなぜですか?

ありがとうございました。

4

1 に答える 1

5

ハンドラー (またはメッセージ) を使用すると、各タスクは「シリアル化」されます。これには、並行性がないため、ロックする必要がないという利点があります。マルチスレッドシステムよりもメッセージ駆動型システムを安定させる方がはるかに簡単です。

ちなみにAsyncTaskもHandlersを使っています

ハンドラーを直接使用すると、柔軟性が向上します。たとえば、メッセージを将来送信するようにスケジュールできます。または、スケジュールされたメッセージを中止することもできます。

ハンドラーは非常に強力なツールです。

于 2012-04-12T19:26:20.990 に答える