例子:併發
實現點擊按鈕,發送消息對象;在工做線程中接收處理消息對象。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); } }