美文网首页
android这样创建Message可以减少内存开销

android这样创建Message可以减少内存开销

作者: 0dce86ba3565 | 来源:发表于2016-08-10 22:10 被阅读0次

    我们一般创建message是这么创建的

    Message msg = new Message();


    但是这样创建message可以减少内存开销

    Message msg = handler.obtainMessage();


    为什么会这样呢?我们来看看源码,关键源码如下:

    //普通的实例化方法

    public Message(){}


    //obtainMessages实例化方法

    public final Message obtainMessage(){

          return Message.obtain(this);

    }

    public static Message obtain(Handler h){

    Message m=obtain();

    m.target=h;

    return m;

    }


    public static Message obtain(){

    synchronized(sPoolSync){

    Message m=sPool;

    sPool=m.next;

    m.next=null;

    sPoolSize--;

    return m;

    }

    return new Message();

    }


    总结:

    上面源码中说得很明白:从整个Messge池中返回一个新的Message实例,在许多情况下使用它,因为它能避免分配新的对象

    如果是这人的话,那么通过调用obtainMessage方法获取Message对象就能避免创建对象,从而减少内存的开销了。

    相关文章

      网友评论

          本文标题:android这样创建Message可以减少内存开销

          本文链接:https://www.haomeiwen.com/subject/msmjsttx.html