0

我将我的应用程序放到了 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。弗拉门托斯

4

1 回答 1

0

在新的更新中,Android 会删除这个文件吗...?

不,对以前安装的应用程序的更新不会删除以前保存的数据。

如果您的数据结构发生了变化,那么您的新版本需要检测以前存储的数据的存在,并在新(升级)版本第一次运行时删除/重新创建它。

于 2012-07-18T22:48:22.803 回答