2017-03-26 10 views
0

私はメッセンジャーコミュニケーションについていくつか質問があります。 それは両側がお互いに通信するためにメッセンジャー+ハンドラを使用することができます見てください。 ただし、MessageQueueを作成する必要はありません。この場合、MessageQueueは作成されませんか?メッセンジャー自体はメッセージを維持していますか?アンドロイドはメッセンジャーをプロセス間で使用していますが、MessageQueueは使用されていませんか?

答えて

1

ActivitiesServicesなどのコンポーネントとContextの範囲でハンドラを作成します。 ハンドラでContext.getMainLooper()を使用し、LooperにメッセージキューがあるLooper.getQueue() Looperのないものからハンドラを作成することはできません。実行時例外があります。

+0

これに追加するには、メインスレッドはLooperとMessageQueueで既に設定されています。ハンドラは、それらが作成されたスレッドに関連付けられます。スレッドが作成されていれば、そのスレッドに関連付けられたLooperを取得し、そのメッセージをそのLooperのMessageキューに送信します。スレッド上に新しいハンドラ()を呼び出すルーパがない場合は、excetionがスローされます。 –

+0

すぐにお返事ありがとうございます。 – user7703688

関連する問題