内存优化中,如果某个对象经常创建那样会非常损耗内存资源。
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);