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方法(子类须重写)