在使用message进行handler的数据交互的时候不可避免的会使用到message作为数据的载体,但是在使用message的时候有人会直接new一个message,有人会使用handler.obtainMessage(),那么这两种方式那种更好一些呢,或者说应用场景分别是什么呢。下面是我的拙见:
/**
* Returns a new {@link android.os.Message
Message} from the global message pool. More efficient than
* creating and allocating new instances. The retrieved message has its handler set to this instance (Message.target == this).
* If you don‘t want that facility, just call Message.obtain() instead.
*/
public final Message obtainMessage()
{
return Message.obtain(this);
}
这是android的源码从注释上咱们可以看出这种形式得到的message是先从 global message
pool中获取的,大致可类比成1.6之后的String的变量的String pool,而new Message是直接new的,也就是说这两种方式只是在生成对象的形式上不同。
在分享个imageView在设置图片的时候通常会有两种形式一种是设置src,另一种是设置background,那么这两种形式有什么不一样的呢:前者是不能拉伸的,而后者是可以任意拉伸的,并且两者可同时存在的。