android_handler(一),android_handler(
只是一個簡單的handler的例子,目的就是對handler有一個初步的接觸。
在layout上添加一個button,點擊按鈕,然後列印出利用handler傳送的資料。(都是運行在mainthread)
1、layout:
<Button android:id="@+id/buttonId" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" />
2、activity:
package com.away.b_06_handler;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class MainActivity extends Activity {private Button button;private Handler handler;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);button = (Button) findViewById(R.id.buttonId);button.setOnClickListener(new ButtonListener());handler = new FirstHandler();}class ButtonListener implements OnClickListener {@Overridepublic void onClick(View v) {// 當使用者點擊按鈕時,我們建立一個訊息對象,並使用Handler發送該對象Message msg = handler.obtainMessage(); //(obtainMessage擷取訊息對象)msg.what = 21;handler.sendMessage(msg);// 上面一行代碼將訊息對象放置到訊息佇列當中,然後// 1.Looper將會從訊息佇列當中,將訊息對象取出.// 2.Looper將會找到與訊息對象對應的Handler對象// 3.Looper將會調用Handler對象handlerMessage(Message msg)方法,用於處理訊息對象}}class FirstHandler extends Handler {@Overridepublic void handleMessage(Message msg) {int what = msg.what;System.out.println("What is: " + what);}}}
效果: