2017-11-13 7 views
0

私はLooperHandlerについて学んでいますが、これはほとんどがUIスレッドの作業に使用されていることがわかりました。それで私はハンドラーの子クラスとhandleMessageメソッドの使用が必要なときは少し混乱します。LooperとHandlerは正確に何のために使用されましたか?

例わかりやすい例によってUIスレッドで作業できます。

Handler handler = new Handler(); 
handler.post(new Runnable(){ 
    public void run(){ 
    // update UI here 
    } 
}); 

簡単なコードで簡単にUIスレッドと通信できます。ここでハンドラは自動的にMainLooperに接続されます。

次に、Handlerの子クラスを使用し、handleMessage(Message msg)メソッドを使用する必要があるとき。

答えて

0

ルーパは、スレッドのメッセージループを実行するために使用されるクラスです。 Threads by デフォルトではメッセージループは関連付けられていません。 を作成するには、ループを実行するスレッドでprepare()を呼び出し、ループが停止するまでメッセージを処理するには loop()を呼び出します。

ルーパークラスの詳細については、hereを参照してください。

ハンドラのための2つの主要な用途がある:(1)メッセージおよび将来のある時点として実行する ランナブルをスケジュールするには、 (2)〜 あなた自身とは別のスレッドで実行されるアクションをエンキューします。

ハンドラークラスの詳細については、hereを参照してください。

+0

私はすでにドキュメントを読んでいますが、それでも理解できませんでした。ハンドラの子クラスが必要なときは尋ねましたか? 'handleMessage(Message m);をオーバーライドする必要があります。 –

関連する問題