话说在工作中第一次接触android 的Handler 的时候,不知道怎么去关注性能。
记得当时这么写的:
Message msg = new Message(); msg.what = xxx; msg.arg1 = xxx; msg.arg2 = xxx;
Handle mHandler = new Handler(){
@Override public void handleMessage(Message msg) {
......
}
}mHandler.sendMessage(msg);
这样写也没有绝得不好,反正当时项目的功能实现了。(性能上还可以)
后来没事的时候看了看handler 的其他的方法,就看到了obtainMessage()这个方法.
Handle mHandler = new Handler(){
@Override public void handleMessage(Message msg) {......}}
Message msg = mHandler.obtainMessage(); msg.what = xxx; msg.arg1 = xxx; msg.arg2 = xxx; msg.obj = xxx;
//mHandler.sendMessage(msg);
msg.sendToTarget();
从整个Messge池中返回一个新的Message实例,在许多情况下使用它,因为它能避免分配新的对象
如果是这人的话,那么通过调用obtainMessage方法获取Message对象就能避免创建对象,从而减少内存的开销了。