一个关于looper和handler的好玩例子(子线程中使用handler)


直接上代码:

public class MainActivity extends Activity {

	private Handler mHandler0;

	private Handler mHandler1;

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

		button = (Button) this.findViewById(R.id.click);
		button.setOnClickListener(new OnClickListener(){
			@Override
			public void onClick(View v) {
				if(mHandler1 != null){
					Message msg = new Message();
					msg.what=2;
					mHandler1.sendMessage(msg);
				}
			}
		});

		mHandler0 = new Handler(){
			@Override 
			public void handleMessage(Message msg) { 

				super.handleMessage(msg); 
				switch(msg.what)
				{
				case 1:
					Toast.makeText(MainActivity.this, "aaaaaaaaq", Toast.LENGTH_SHORT).show();
					
					break;
				}
			} };			

		new LooperThread().start();
	}

	public class LooperThread extends Thread { 

		@Override 
		public void run() { 
			// 将当前线程初始化为Looper线程 
			Message msg = new Message();
			msg.what = 1;
			mHandler0.sendMessage(msg);
			
			Looper.prepare(); 
			//...其他处理,如实例化handler 
			mHandler1 = new Handler(){
				@Override 
				public void handleMessage(Message msg) { 
					super.handleMessage(msg); 
					
					switch(msg.what)
					{
					case 2:
						Toast.makeText(MainActivity.this, "bbbbbbbbbbbbbbbb", Toast.LENGTH_SHORT).show();
						break;
					}
				} 
			};
			
			// 开始循环处理消息队列 
			Looper.loop(); 
		} 
	} 
}

子线程中使用handler


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值