本人菜鸟,在看代码中 Handler 类中发现了handleMessage(Message msg) 和dispatchMessage(Message msg)这两种方法,恰巧想在别的项目中发现有人使用dispatchMessage,同时查看额百度上,未能名表两则的区别!
  请有此方面的经验的老前辈,给详细的说下!不胜感激,谢谢!

解决方案 »

  1.   

    dispatchMessage的源码
    public void dispatchMessage(Message msg) {
            if (msg.callback != null) {
                handleCallback(msg);
            } else {
                if (mCallback != null) {
                    if (mCallback.handleMessage(msg)) {
                        return;
                    }
                }
                handleMessage(msg);
            }
        }从名字可以看出来dispatchMessage是分发msg,决定给谁处理,handleMessage是用来具体处理msg的方法
    当然了,由于是同一个msg对象,在dispatchMessage中处理肯定也是能正确处理的
      

  2.   

    根据以前的做的Dispatch相关的代码, DispatchMessage函数将消息传给窗体函数去处理, 可以理解为系统分发,大体如下:
    先发到SYSUI,如果SYSUI没有拦截,就分发到Activity的Dispatch,再转发到窗体,窗体处理后转成别的信息;
    handleMessage 一般用于类内部,并且有指定的Handler 接收信息!
    这只是我的片面理解,请大神指教!!