我将一些应用程序元数据保存在SharedPreferences
. 每当我卸载应用程序并重新安装它时,它们都会SharedPreferences
被删除。
有没有办法让它保留下来,这样如果用户卸载并重新安装,他们可以恢复他们的旧数据?
我将一些应用程序元数据保存在SharedPreferences
. 每当我卸载应用程序并重新安装它时,它们都会SharedPreferences
被删除。
有没有办法让它保留下来,这样如果用户卸载并重新安装,他们可以恢复他们的旧数据?
从 Android 6.0 开始,可以使用:
<application
android:allowBackup="true">
通过将其设置为 true,您的数据(sharedprefs 和其他数据)将保存在 Google 云上,并在下次安装应用程序时恢复。你可以在这里阅读更多关于它的信息。需要注意的是,从 6.0 开始默认设置为true 。
您应该添加一个BackupAgentHelper
到您的应用程序。与 一起SharedPreferenceBackupHelper
,它将 备份SharedPreferences
到云端(如果设备支持)。重新安装应用程序后,数据将恢复。
看:
我很确定SharedPreferences
总是与应用程序一起删除。在我看来,最好的方法是将隐藏文件(类似于“.nameOfFile”)写入 SD 卡或内部存储器,并使其包含首选项。
不过,您应该使用 SharedPreferences,它是偏好管理的 Android 标准。您可以这样做,以便在您的应用程序第一次加载时,它会检查 SDCard 中是否存在上次打开时创建的隐藏文件。如果文件存在,则读入这些输入并将它们存储在 SharedPreferences 中,如果不存在,则要么用户删除了它,要么用户以前从未安装过您的应用程序。
这只是一种方法,它可能不是最有效的,但我希望它有所帮助!
一种方法是将用户数据存储在服务器上。然后当用户重新安装应用程序或在另一台设备上安装应用程序时,他们可以“同步”他们的用户数据。这只是数据的小型 HTTP 下载,可能存储在 JSON 中,然后您将对其进行解析并写入 SharedPreferences。
如果你不想维护自己的服务器,你可以使用像 Dropbox 这样的云服务。这就是应用程序 1Password Reader 的工作方式。
正如 edthethird 所说:最好将物理文件放在设备外部存储上并在安装时读取它们。如果需要对用户隐藏文件内容,只需执行简单的加密/解密过程。
卸载时会删除 sharedPrefs 和 DB。您必须在应用程序之外编写(例如 sd)。
这实际上是内置的,您只需要实现几个类即可启用它。数据将被备份并链接到用户的谷歌帐户,因此如果他们在新设备上安装应用程序,重新安装等,它将自动恢复。
在 2020 年,在我看来,这Shared Storage
就是要走的路。
Android 数据和文件存储概述
https://developer.android.com/training/data-storage
文件和文件的共享存储
https://developer.android.com/training/data-storage/shared/documents-files