`

handler处理message

 
阅读更多

package com.lilin.handler;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.ImageView;

/**
 * 通过Handler实现2秒自动换图
 * 
 * @author lilin
 * @date 2011-8-10 上午08:51:27
 * @ClassName: Main
 * @Description: TODO
 */
public class HandlerMessageDemo extends Activity {
	private ImageView myImageView;// ImageView的引用
	private Handler myHandler = new Handler() {// 创建一个Handler对象
		public void handleMessage(Message msg) {// 重写接收消息的方法
			switch (msg.what) {// 判断what的值
			case 0:// what值为0时
				myImageView.setImageResource(R.drawable.bbta);
				break;
			case 1:// what值为1时
				myImageView.setImageResource(R.drawable.bbtb);
				break;
			case 2:// what值为2时
				myImageView.setImageResource(R.drawable.bbtc);
				break;
			case 3:// what值为3时
				myImageView.setImageResource(R.drawable.bbtd);
				break;
			}
			super.handleMessage(msg);
		}
	};

	public void onCreate(Bundle savedInstanceState) {// 重写的onCreate方法
		super.onCreate(savedInstanceState);
		setTitle("handler通信:每2秒自动换图");
		setContentView(R.layout.main);// 设置当前的用户界面

		// Handler和Activity不属于同一线程,所以Hander实现了对消息的异步处理
		String text = "当前activity的ID--->" + Thread.currentThread().getId();
		System.out.println(text);
		text = "当前activity的名称--->" + Thread.currentThread().getName();
		System.out.println(text);

		myImageView = (ImageView) findViewById(R.id.myImageView);

		new Thread() {
			public void run() {
				int i = 0;
				while (true) {// 循环
					myHandler.sendEmptyMessage((i++) % 4);// 发送消息
					String text = "handler的ID" + Thread.currentThread().getId();
					System.out.println(text);
					text = "handler的名称" + Thread.currentThread().getName();
					System.out.println(text);
					try {
						Thread.sleep(2000);// 注意这边加了延迟
					} catch (Exception e) {
						e.printStackTrace();
					}
				}

			};
		}.start();
	}

}
 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics