您的位置:首页 > 移动开发 > Android开发

Android Handler学习笔记

2013-09-17 17:56 369 查看
代码例子:http://pan.baidu.com/share/link?shareid=4079574578&uk=3189484501

package com.example.threaddome;

import android.nfc.Tag;
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;
import android.widget.TextView;
import android.app.Activity;

public class MainActivity extends Activity {

	private static final String TAG = "MainThread";
	private Handler mMianHandler ,mchildHandler;
	private TextView info;
	private Button msgBtn;
	
	
	
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		info = (TextView)findViewById(R.id.textView1);
		msgBtn = (Button)findViewById(R.id.button1);
		//主线程接受消息
		mMianHandler = new Handler(){
			
			@Override
			public void handleMessage(Message msg) {
				// TODO Auto-generated method stub
				super.handleMessage(msg);
				info.setText((String)msg.obj);
				Log.i("aa9999", "zzzzzzzzzzzzzzz77777777777");
			}
		};
		
		//开启子线程
		new ChildThread().start();
		//通过Button的点击事件调用子线程
		msgBtn.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				Message msgMessage = new Message();
				msgMessage.obj = "fffffffffffffff";
				mchildHandler.sendMessage(msgMessage);
			}
		});		
	}
	
	
	class ChildThread extends Thread{
		@Override
		public void run() {
			// TODO Auto-generated method stub
			super.run();
			
			//初始化消息循环队列,需要在Handler创建前
			Looper.prepare();
			
			mchildHandler = new Handler()
			{
				public void handleMessage(Message msg) {
					Log.i("aa", "zzzzzzzzzzzzzzz");
					
					try {
						Message message  = new Message();
						message.obj = (String)msg.obj+ "ffffffff";
						mMianHandler.sendMessage(message);
					} catch (Exception e) {
						// TODO: handle exception
						e.printStackTrace();
					}
					
					
				}
			};
			//启动子线程消息队列
			Looper.loop();
		}
	}

	

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: