首页 > 代码库 > Android sendToTarget

Android sendToTarget

在使用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,那么这两种形式有什么不一样的呢:前者是不能拉伸的,而后者是可以任意拉伸的,并且两者可同时存在的。

Android sendToTarget