Androidのハンドラーを使用して2つのスレッド間の双方向通信をどのように実装しますか?
スレッドBを生成するサービスAがあります。BからAへの通信はかなり簡単です。ハンドラーをBのコンストラクターに渡すだけですが、AからBに通信するにはどうすればよいですか? Bには、ルーパーが自動的に割り当てられていません。
誰かが答えを得ましたか?
ここ は、ハンドラーを使用したスレッドと通信について説明する良い投稿です。また、同じブログには、Androidのさまざまなスレッド構成に関する多数の投稿があります
作成したばかりのスレッド(ただし、まだ初期化されていない可能性があります)のハンドラーを取得する問題を解決するには、 ルーパースレッドを作成してすぐにメッセージを送信する方法を参照してください
新しいスレッドでLooper.prepare()
を呼び出すと、そのスレッド用にLooperが作成されます。次に、他のスレッドに戻すハンドラーを作成できます。
つまり、Looper.prepare()
を呼び出した後、ステートメントHandler h = new Handler()
は新しいスレッドのルーパーにハンドラーを作成します。
http://developer.Android.com/reference/Android/os/Looper.html