【问题标题】:Android: Save file permanently (even after clear data / uninstall)Android:永久保存文件(即使在清除数据/卸载后)
【发布时间】:2011-08-31 19:33:42
【问题描述】:

我想知道是否有办法永久存储少量数据。
永久我的意思是即使用户清除应用程序数据/卸载应用程序,我也希望数据保持不变。
我知道当用户清除应用程序数据/卸载应用程序时,共享首选项和数据库会被删除。

我也知道我可以在 SD 卡上保存东西,但是如果设备没有 SD 卡怎么办/ SD 卡已卸载?

我认为最好的选择是将数据保存在设备内存中,但是在清除应用数据/卸载应用时是否可以不删除数据?

【问题讨论】:

    标签: android file storage sd-card


    【解决方案1】:

    你不应该这样做,你不应该强迫用户在未经他们同意的情况下将数据保存在他们的手机上。

    无论如何,卸载后会删除应用程序数据目录,但更新后不会删除

    拥有持久数据的唯一方法是使用 SD 卡,但同样,用户不希望在卸载应用后将数据保存在卡上

    或者你可以考虑:

    1. 通过某种身份验证将数据存储在远程服务器上以检索数据
    2. 使用Data Backup服务

    【讨论】:

    • 是否有任何其他解决方案可以在我的 sdk 中实现,而无需强迫我的用户在 Manifest 中进行任何更改,不像“数据备份”选项也强迫我
    • 真正的问题是您需要通过持久存储实现什么。如果您是设备的所有者并且可以物理访问它并且设备已root或至少/system分区可以以某种方式可写,您可以存储所需的那里的文件。您还可以通过将其放在/system/app 目录中,以这种方式拥有一个持久性(始终通过 GUI 安装/不可卸载)应用程序。
    【解决方案2】:

    Environment.getDataDirectory() 至少是一个可以保存文件的目录。它在内部存储 (/data) 上。

    我使用它的一种情况是定义服务是否正在运行;我在其中创建了一个 .lock 文件并始终检查它是否存在。

    【讨论】:

    • 你不需要root吗?
    • 嗨,我正在尝试在 Environment.getDataDirectory() 中创建一个文件,但我得到 java.io.IOException: Permission denied。我查了一下,好像这​​个目录不可写:stackoverflow.com/questions/1998400/…
    • 我在我的 android 2.2 设备上做同样的事情,它没有根权限。
    猜你喜欢
    • 1970-01-01
    • 2021-07-12
    • 2020-08-17
    • 1970-01-01
    • 2013-11-10
    • 1970-01-01
    • 2020-05-30
    • 1970-01-01
    • 2012-11-25
    相关资源
    最近更新 更多