源码:
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就实例化一个。
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就实例化一个。
我觉得new Message()的存在肯定有必不可少的地方,有些情况下必须使用new Message(),不然就不会开放这个方法了,直接去除岂不更好。。现在很想知道什么情况下会必须用new Message()而不能obtainMessage