源码:
    public static Message obtain() {
        synchronized (sPoolSync) {
            if (sPool != null) {
                Message m = sPool;
                sPool = m.next;
                m.next = null;
                sPoolSize--;
                return m;
            }
        }
        return new Message();
    }
个人认为是从系统中获取有限的Message,提高性能,如果pool中没有Message就实例化一个。

解决方案 »

  1.   

    系统初始化一个Message Pool 提高效率。
      

  2.   


    我觉得new Message()的存在肯定有必不可少的地方,有些情况下必须使用new Message(),不然就不会开放这个方法了,直接去除岂不更好。。现在很想知道什么情况下会必须用new Message()而不能obtainMessage
      

  3.   

    obtain方法里边不是用到同步锁了吗?所以不会乱吧?