0

1) UI スレッドにメッセージを送信して GUI の内容を変更し、2) UI スレッドからメッセージを受信して​​ワーカー スレッドの動作を制御できるワーカー スレッドが必要です。

最初の部分は簡単です。UI スレッドで Handler を作成し、ワーカー スレッドがそれにメッセージを送信できるようにします。魅力のように機能します。ワーカー スレッドは Thread.sleep() を使用して効率的な遅延を実行し、「何かをする」ためにウェイクアップし、UI スレッドのハンドラーに更新を送信し、繰り返します。

次の部分はどうやら Android では難しいようです。ワーカー スレッドには、メッセージを受信できるように Handler を作成するための Looper が必要です。また、Looper.loop() はブロッキング コールです。は現在実行中です (「実行」、更新メッセージの送信、スリープ、繰り返し)。

これは、ワーカー スレッドのルーパーを実行するためだけに 3 番目のスレッドが必要であることを意味しますが、これはばかげています。ワーカー スレッドに有用なことを実行させ、メッセージが到着したときにメッセージを処理することが可能であるべきです。これにより、最小数のスレッド オブジェクトと最小のオーバーヘッドで効率的なシステムが得られます。Android でこの動作を実装する方法がわかりません。

では、ワーカー スレッドはどのように Handler をサポートし、他に役立つことを行うのでしょうか? ありがとう!

4

1 に答える 1