Message和obtainMessage的区别

具体可参考:http://blog.csdn.net/duqiuke/article/details/39577413

尽管Message的构造器是公开的,但是获取Message对象的最好方法是调用Message.obtain()或者Handler.obtainMessage(), 这样是从一个可回收对象池中获取Message对象。

这样就避免了过分new出一个个Message对象造成内存开销。

使用:

//①,使用new Message()
//Message mess = new Message();
//②,使用Message.obtain()
     Message mess = Message.obtain(); 
     mess.what =1;
//③,使用mHandler.obtainMessage();
//mHandler.obtainMessage(1)与上两行的代码一样,可以参考源码查看
   Message mess = mHandler.obtainMessage(1);
   Message mess = mHandler.obtainMessage();
   mHandler.sendMessage(mess);

所以,还是尽量使用obtainMessage。

posted @ 2015-06-04 18:58  聪聪的豆芽  阅读(350)  评论(0编辑  收藏  举报