源碼分析Android Handler是如何實(shí)現(xiàn)線程間通信的
Handler作為Android消息通信的基礎(chǔ),它的使用是每一個(gè)開發(fā)者都必須掌握的。開發(fā)者從一開始就被告知必須在主線程中進(jìn)行UI操作。但Handler是如何實(shí)現(xiàn)線程間通信的呢?本文將從源碼中分析Handler的消息通信機(jī)制。
0x00 Handler使用
首先看看我們平時(shí)是如何使用的Handler
的。先看看以下代碼
//定義HandlerHandler mHandler = new Handler(){ public void handleMessage(Message msg){ switch(msg.what){ case UPDATE_UI: updateUI(msg); break; } } };class MyThread extends Thread{ public void run(){ //do same work! ... //send message Message msg = mHandler.obtainMessage(UPDATE_UI); mHandler.sendMessage(msg); } }private void updateUI(Message msg){