【问题标题】:Persist files between updates in an Android app在 Android 应用程序的更新之间保留文件
【发布时间】:2012-03-11 21:46:51
【问题描述】:

我注意到我的应用在从 Market 更新后丢失了存储在设备存储中的文件。我使用openFileOutput() 来获取一个目录来存储我的重要文件,正如here 所指定的那样。我希望这些文件会在更新之间保留,但似乎并非如此,至少对于 Froyo。如果这种行为是正确的,我应该如何以更新后不会被删除的方式存储我的文件?

【问题讨论】:

    标签: android


    【解决方案1】:

    我注意到我的应用在从 Market 更新后丢失了存储在设备存储中的文件。

    所有文件都在升级时保留。如果出现以下情况,文件将被删除:

    • 用户卸载应用程序
    • 用户使用“设置”中的“清除数据”选项

    此外,如果您更改 android:sharedUserId,您的文件不会被删除,但它们将归之前的用户 ID 所有,这意味着您的应用将永久混乱,直到用户卸载并重新安装。

    我希望这些文件会在更新之间保留

    他们是。

    【讨论】:

    • 好吧,所以我需要进一步调查这个问题。我的应用程序每次启动时都会正确加载文件上的数据,但是当它更新时,这些数据似乎丢失了。我会在检查时接受您的回答,谢谢您的回复!
    • 我刚刚注意到发生了什么。问题是我忘记将 Proguard 配置为忽略我的 Serializable 类,因此它无法加载它,因为 Proguard 更改了它的名称。更多详情可查看here
    • @hgm:是的,Serializable 很容易出现这样的问题。就个人而言,我坚持 Serializable。为什么坚持使用 Mark I Eyeball 无法轻松调试的脆弱格式?我宁愿保存到 SQLite、JSON 或 XML。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-07
    • 1970-01-01
    相关资源
    最近更新 更多