具体可参考: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。