package com.example.handler2;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
public class MainActivity extends Activity {
private Button mButton;
private ImageView mImageView;
private final int SHOW_LOG = 321;
private Handler mHandler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
Log.d("==xiaoxi",String.valueOf(msg.arg1));
Log.d("==arg2:" ,String.valueOf(msg.arg2));
Log.d("==what:",String.valueOf(msg.what));
Log.d("==obg:",String.valueOf(msg.obj));
Log.d("==char[]",String.valueOf((msg.getData().getCharArray("xiaohong").length)));
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mButton = (Button)findViewById(R.id.button1);
mImageView = (ImageView)findViewById(R.id.imageView1);
mButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
MyRunnable run = new MyRunnable();
Thread t = new Thread(run);
t.start();
}
});
}
private class MyRunnable implements Runnable{
@Override
public void run() {
//方式一
// Message msg = Message.obtain();
// msg.obj = "xiaoxi";
// msg.arg1 = 1;
// msg.arg2 = 2;
// msg.what = SHOW_LOG;
// mHandler.sendMessage(msg);
//方式二,比较简便
// Message msg = Message.obtain(mHandler);
// msg.arg1 = 1;
// msg.arg2 = 2;
// msg.obj = "xiaoming";
// msg.what = SHOW_LOG;
// msg.sendToTarget();
//方式三:存储比较复杂的数据类型char类型boolean类型StringArray类型等等
Message msg = Message.obtain(mHandler,SHOW_LOG,"xiaohong");
Bundle data = new Bundle();
data.putCharArray("xiaohong", new char[]{'h', 'o' ,'n','g'});
msg.setData(data);
msg.sendToTarget();
}
}
}
结果: