android中Handler的使用分两个步骤:一个是构建消息,发送消息,发送消息之后会触发Handler的handleMessage(Message msg)方法。
构建消息的时候,一般主要设置what标识及obj携带数据。
构建消息的时候,使用Message.obtain()获取。
案例demo
布局
一个ProgressBar,下面两个Button,垂直线性布局,请求网络获取数据,显示在下方的EditText中。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ProgressBar
android:id="@+id/pb_handler1_loading"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:visibility="invisible" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="getSubmit1"
android:text="GET Submit" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="getSubmit2"
android:text="GET Submit2" />
<EditText
android:id="@+id/et_handler1_result"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="显示结果" >
</EditText>
</LinearLayout>
package com.hbk.layoutdemo;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.EditText;
import android.widget.ProgressBar;
/**
*
* @author 黄宝康
*
*/
public class MainActivity extends Activity {
private ProgressBar pb_handler1_loading;
private EditText et_handler1_result;
//1. 创建Handler成员变量对象, 并重写其handleMessage()
private Handler handler = new Handler(){
public voi