案例:
在主线程中发送消息,子线程中得到消息更新UI
package com.example.threadhandler;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.view.View;
import android.widget.Toast;
public class MainActivity extends Activity {
private HandlerThread t;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 子线程
t = new HandlerThread();
// 开启线程
t.start();
}
/**
* 按钮点击事件
*
* @param v
*/
public void click(View v) {
// 向子线程发送空消息
t.handler.sendEmptyMessage(0);
}
// 线程类,处理消息 --- 异步消息处理线程
class HandlerThread extends Thread {
// Handler
public Handler handler;
@Override
public void run() {
// 必须先prepare
Looper.prepare();
// 实例化handler
handler = new Handler() {
@Override
public void handleMessage(Message msg) {
Toast.makeText(getApplicationContext(), "收到消息", 0).show();
}
};
// 循环
Looper.loop();
}
}
}