我把我的应用放在了Android Market上。现在我想要更新它,但在此之前我想更好地了解Android将如何管理我的应用程序的内存。 特别是我以这种方式使用内部存储器:
File f = context.getFileStreamPath(NAME_FILE);
if (f.exists()){
FileInputStream stream = context.openFileInput(NAME_FILE);
ObjectInputStream din = new ObjectInputStream(stream);
myobject = (MyObject) din.readObject();
}else{
FileOutputStream stream = ctx.openFileOutput(NAME_FILE, Context.MODE_PRIVATE);
ObjectOutputStream dout = new ObjectOutputStream(stream);
dout.writeObject(myobject);
dout.flush();
stream.getFD().sync();
}
我用这个文件来存储一些可序列化的对象。在新版本中,我更改了这些对象的结构,所以我的问题是:
在新的更新中,Android会删除此文件,当我的应用程序尝试将对象(else子句)存储到文件中时,它会创建一个新的空文件吗? 或者Android会保留此文件,当我的应用程序尝试从文件(if子句)中调整对象时,它会崩溃吗?
提前Tnx。 Framentos答案 0 :(得分:0)
在新的更新中,Android会删除此文件吗??
不,对以前安装的应用程序的更新不会删除以前保存的数据。
如果您的数据结构已更改,则新版本需要检测先前存储数据的存在,并在第一次运行新(升级)版本时删除/重新创建它。