我有一个问题。每次打开活动时,我都会创建一些重物。在使用该程序时,此活动可以打开很多次,所以每次我都应该等待一些繁重的事情。有没有办法将这个大对象缓存到内存中,并在第二次启动活动时从内存中获取它。 或者有另一种方法可以做到这一点?
答案 0 :(得分:1)
将对象另存为文件:
FileOutputStream output = context.openFileOutput("object.bin", Context.MODE_PRIVATE);
ObjectOutputStream outputStream = new ObjectOutputStream(output);
outputStream.writeObject(objectToSave);
outputStream.close();
从文件
加载对象FileInputStream input = context.openFileInput(fileName);
ObjectInputStream inputStream = new ObjectInputStream(input);
Object obj = inputStream.readObject();
inputStream.close();
ObjectToSave ots;
if(obj instanceof ObjectToSave)
{
its = (ObjectToSave) obj;
}
答案 1 :(得分:0)
您可以extend Application随时随地存储/检索任意对象。
所以你的活动看起来像这样
void onCreate(Bundle bundle) {
GlobalState state = (GlobalState) getApplicationContext();
MyObject obj = state.getMyObject();
if (obj == null) {
obj = createHeavyObject();
state.setMyObject(obj);
}
// your business logic here
}