例子:并发
实现点击按钮,发送消息对象;在工做线程中接收处理消息对象。oop
准备Looper对象,并生成Handler对象
· 能够在工做线程里,直接写Handler匿名内部类来实现handleMessage方法;线程
· 也能够在外面写个内部类实现Handler,而后在这里实例化。code
这里使用后者对象
class WorkerThread extends Thread { public void run() { Looper.prepare(); handler = new MyHandler(); Looper.loop(); //调用looper的loop方法以后,Looper将不断从消息队列中取出消息对象 //而后调用handler的handleMessage方法处理消息对象 //若是没有消息对象,则线程阻塞 } }
new WorkerThread().start();
class MyHandler extends Handler { public void handleMessage(Message msg) { super.handleMessage(msg); System.out.println("handleMessage方法,当前:" + Thread.currentThread().getName() + " 接收到消息"); System.out.println("收到的数据为:" + msg.obj); } }
按钮监听:继承
class ButtonOnClickListener implements OnClickListener { public void onClick(View v) { System.out.println("当前为:" + Thread.currentThread().getName() + "Thread---发送消息"); Message msg = handler.obtainMessage(); String s = "Hello"; System.out.println("发送的数据为:" + s); msg.obj = s; handler.sendMessage(msg); } }