如何将对象缓存到内部存储器中

时间:2014-07-10 07:32:25

标签: android

我有一个问题。每次打开活动时,我都会创建一些重物。在使用该程序时,此活动可以打开很多次,所以每次我都应该等待一些繁重的事情。有没有办法将这个大对象缓存到内存中,并在第二次启动活动时从内存中获取它。 或者有另一种方法可以做到这一点?

2 个答案:

答案 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
}