源码:
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就实例化一个。
解决方案 »
- android4.0.4 插vga显示不正常
- 关于android路径问题
- android RemoteCallbackList beginbroadcast 失败
- 关于android 问题,,在android编程中如何获得GSM手机当前的lac、cid!我只能获得邻近小区的请问如何获得当前正在用的呢??
- cannot find symbol symbol : class ServiceManager,求助!
- 关于android源码模块编译的问题
- eclipse调试出现Source not found
- gps 用一个漂亮图标显示位置
- bundle类封装数据问题
- 求大神解答我代码没报错但是程序运行不了
- android usb camera 拍摄室外照片为白色图片
- 查询音乐数据库的问题!!!!
我觉得new Message()的存在肯定有必不可少的地方,有些情况下必须使用new Message(),不然就不会开放这个方法了,直接去除岂不更好。。现在很想知道什么情况下会必须用new Message()而不能obtainMessage