あなたはみなさん、こんにちは、さんが状回にハンドラ機構ではアンドロイド、我々はこの例に行ってきました今回の例であるとしましょう何であったかを教えてください。ゴシップヒューは、ターンを改革の言葉を述べました。レッツ・トークのAndroidになりました!
最後の章では、我々は、我々が使用ハンドラと組み合わせてテキストを経由してコードを導入すること状回を知識ハンドラの状回を導入した方、教えてください。
- 1.アプリケーションプロジェクトを作成し、プロジェクトがMainActivity空のアクティビティの名前の唯一の男が含まれています。
- 2.ハンドラ・クラスがサブハンドラサブクラス、およびオーバーライドのhandleMessageメソッドを定義します。
public class SubHandler extends Handler {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what){
case MSG_START:
showMessage(msg.obj.toString());
break;
case MSG_END:
showMessage(msg.obj.toString());
break;
default:
showMessage(msg.obj.toString());
break;
}
}
}
- のMainActivityのonCreate機能でのオブジェクトハンドラのタイプを定義します。3.:
mSubHandler = new SubHandler();
- MainActivityに2つのボタンを作成4.、そしてリスナーは、メッセージを送信するために提供されます。
mBTStartMsg = (Button) findViewById(R.id.id_bt_start_message);
mBTEndMsg = (Button) findViewById(R.id.id_bt_end_message);
mBTStartMsg.setOnClickListener(v ->sendMsg(MSG_START,"Start"));
mBTEndMsg.setOnClickListener(v -> sendMsg(MSG_END,"End"));
- メッセージを送信するための方法の定義は、この方法により、メッセージキューにメッセージを送信します。
public void sendMsg(int type,String content) {
Message msg = new Message();
msg.what = type;
msg.obj =content;
mSubHandler.sendMessage(msg);
}
- 6.Lopperは、メッセージのメッセージキューとコールバックハンドラのhandleMessageメソッドから取り外し、ルーパーこの操作は自動的に行われ、私たちが動作する必要はありません。
我々は、ステップ5でキーメッセージを送信する方法を見て、方法のパラメータは、メッセージの種類と含有量は、その後、型メッセージのオブジェクトとして、これら2つのプロセスパラメータにカプセル化されたHandler的sendMessage
メッセージキュー方法に送ら;また、我々はメッセージの種類はとてもプロジェクトの仕様に沿って、定数を書かれました。
米国ステップでのhandleMessage方法2書き換え可能我々の分析できmsg.what
タイプは、メッセージ、異なるメッセージを決定し、その後、治療の異なるタイプに応じて処理され、本明細書に比較的簡単である:メッセージの内容と、ユーザに表示トーストを求めることにより、私たちがクリックされたときstart和end按钮
、それは表示にトーストをポップアップ表示されます"Start"和"End".
ここに表示されたコンテンツと、私たちにメッセージを送信するときとまったく同じ内容を追加します。
私たちに未知の送信メッセージが処理されているので、ハンドラ。メッセージキューの作成方法については、管理する方法を、私たちは気にしないでください。また、我々が送信され、コード内のメッセージの処理をメインスレッドであり、スレッドは、子を必要としない、彼らは自分自身を実現する、または分を待つことができる、我々は中に、サブスレッドで状回の章の後ろのメッセージを持っていますメッセージの例は、メインスレッドを処理します。
Androidのハンドラ機構に場合には、我々はここで説明する、としましょう聞く次の分解については、いずれかの例がある、教えてください!