15-多线程编程(04-Handler和Message二)

package net.csdn.leigo.handler.message;

import net.csdn.leigo.handler.R;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.TextView;

public class MainActivity extends Activity {
	private TextView mMsgTextView;

	private Handler handler = new Handler() {

		@Override
		public void handleMessage(Message msg) {
			super.handleMessage(msg);
			if (msg.what == 3) {
				int arg1 = msg.arg1;
				int arg2 = msg.arg2;
				int what = msg.what;
				Object obj = msg.obj;
				Bundle bundle = msg.getData();
				String data = bundle.getString("data");
				mMsgTextView.setText("arg1:" + arg1 + ", arg2:" + arg2
						+ ", what:" + what + ", obj:" + obj.toString()
						+ ", data:" + data);
			}
		}

	};

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		mMsgTextView = (TextView) findViewById(R.id.tv_msg);
	}

	public void sendMessage(View v) {
		new Thread(new Runnable() {

			@Override
			public void run() {
				// ----------------------------------第一种方式-----------
				// Message msg = Message.obtain();
				// msg.arg1 = 100;
				// msg.arg2 = 200;
				// msg.what = 1;
				// msg.obj = " hello ";
				// handler.sendMessage(msg);
				// -----------------------------------------------------
				// ----------------------------------第二种方式-----------
				// Message msg = Message.obtain(handler);
				// msg.arg1 = 100;
				// msg.arg2 = 200;
				// msg.what = 2;
				// msg.obj = " world ";
				// msg.sendToTarget();
				// -----------------------------------------------------
				// ----------------------------------第三种方式-----------
				//Message有很多重载方法,具体查看API,这里通过Bundle传递一个参数
				Message msg = Message.obtain(handler, 3);
				Bundle bundle = new Bundle();
				bundle.putString("data", "hello world");
				msg.obj = " android ";
				msg.setData(bundle);
				msg.sendToTarget();

			}
		}).start();

	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值