美文网首页
SynchronizedPool对象池使用-Android

SynchronizedPool对象池使用-Android

作者: 一航jason | 来源:发表于2017-04-12 22:25 被阅读0次

内存优化中,如果某个对象经常创建那样会非常损耗内存资源。
massage 对象经常使用,他提供了obtain() 方法来获取message对象,那么其实他不是每次都去创建对象,而是使用对象池去保存。
下面使用对象池的使用:

package com.example.xieqiping.cn.testdomejsonliyihang;

import android.support.v4.util.Pools;
import android.util.Log;

/**
 * Created by xieqiping on 2017/4/9.
 */
public class TestClass {

    public String name="TestClass";

    static final String tag="TestClass";

    private static final Pools.SynchronizedPool<TestClass> sPool=new Pools.SynchronizedPool<TestClass>(1);//对象池

    //获取对象中数据
    public static TestClass obtain(){
        TestClass acquire = sPool.acquire();
        if (acquire==null){
            Log.i(tag, "init class");
            return new TestClass();
        }
        return acquire;
    }

    //清空对象
    public void recycle(){
        sPool.release(this);
    }

}

调用测试:


        TestClass testClass = new TestClass();
        Log.i(TAG, "name: "+testClass.name);
        testClass.name="new name";
        testClass.recycle();// 回收起来备用
        TestClass obtain = TestClass.obtain();
        Log.i(TAG, "name: "+obtain.name);
        TestClass obtain1 = TestClass.obtain();
        Log.i(TAG, "name: "+obtain1.name);


相关文章

网友评论

      本文标题:SynchronizedPool对象池使用-Android

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