您的位置:首页 > 大数据 > 人工智能

Handler sendMessage 与 obtainMessage (sendToTarget)比较

2014-06-20 18:26 337 查看
话说在工作中第一次接触android 的Handler 的时候,不知道怎么去关注性能。记得当时这么写的:
Message msg = new Message();
msg.what = xxx;
msg.arg1  = xxx;
msg.arg2  = xxx;
Handle mHandler = new Handler(){
  @Overridepublic void handleMessage(Message msg) {
......
}
}mHandler.sendMessage(msg);
这样写也没有绝得不好,反正当时项目的功能实现了。(性能上还可以)后来没事的时候看了看handler 的其他的方法,就看到了obtainMessage()这个方法.
Handle mHandler = new Handler(){
  @Overridepublic 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对象就能避免创建对象,从而减少内存的开销了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: