方法一:
package com.h3c.test;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class HandlerTestActivity extends Activity {
Button btn;
Handler mHandler;
LooperThread thread;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn = (Button) findViewById(R.id.btn);
thread = new LooperThread();
thread.start();
btn.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
Log.e("H3c", mHandler + "==");
if (mHandler != null) {
mHandler.sendEmptyMessage(6);
}
}
});
}
class LooperThread extends Thread {
@Override
public void run() {
super.run();
Looper.prepare();
mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
Log.e("H3c", msg.what + "=");
}
};
Looper.loop();
}
}
}
方法二:
package com.h3c.test;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.HandlerThread;
import android.os.Looper;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class HandlerTestActivity extends Activity {
Button btn;
MyHandler mHandler;
HandlerThread thread;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn = (Button) findViewById(R.id.btn);
thread = new HandlerThread("test_h3c");
thread.start();
mHandler = new MyHandler(thread.getLooper());
Log.e("H3c", "1:" + Thread.currentThread().getName());
btn.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
mHandler.sendEmptyMessage(4);
}
});
}
class MyHandler extends Handler {
public MyHandler(Looper looper) {
super(looper);
}
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
Log.e("H3c", Thread.currentThread().getName() + "=" + msg.what);
}
}
}