源码分析Android Handler是如何实现线程间通信的
Handler作为Android消息通信的基础,它的使用是每一个开发者都必须掌握的。开发者从一开始就被告知必须在主线程中进行UI操作。但Handler是如何实现线程间通信的呢?本文将从源码中分析Handler的消息通信机制。
0x00 Handler使用
首先看看我们平时是如何使用的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){