public void dispatchMessage(Message msg) { //首先是Message的callback if (msg.callback != null) { handleCallback(msg); } else { //然后是handler本身的的callback if (mCallback != null) { if (mCallback.handleMessage(msg)) { return; } } //最后是handler本身的的handleMessage handleMessage(msg); } }
调用的优先级
1.Message的callback(其实是个Runnable对象),handleCallback(msg)其实是调用msg.callback.run()
2.Handler的callback
3.Handler的handleMessage方法(子类须重写)