我正在开发一个 Android 应用程序。此应用程序存储与其功能相关的偏好(用户设置),例如首选图像质量等。还有购买。
我的问题是:如何将这些设置存储在 Android 中,即使应用程序被删除,它们也能保持持久性。
具体采购。我希望用户能够购买应用内功能,卸载应用,如果他重新安装应用并按下“恢复购买”按钮,之前购买的功能将被恢复。
我目前正在使用 Android 的 SharedPreferences 来存储这些设置。我想评论一下这是否适合我的目的。
我正在开发一个 Android 应用程序。此应用程序存储与其功能相关的偏好(用户设置),例如首选图像质量等。还有购买。
我的问题是:如何将这些设置存储在 Android 中,即使应用程序被删除,它们也能保持持久性。
具体采购。我希望用户能够购买应用内功能,卸载应用,如果他重新安装应用并按下“恢复购买”按钮,之前购买的功能将被恢复。
我目前正在使用 Android 的 SharedPreferences 来存储这些设置。我想评论一下这是否适合我的目的。
如果您使用共享首选项,它将不起作用。我们无法使用共享首选项永久存储数据。最好的方法是使用 Web 服务作为后端。
对于您的具体情况,简短的回答是在设置应用内结算时使用“由用户帐户管理”购买类型。
关于一般情况,SharedPreferences
当您的应用程序被卸载时,您的应用程序会被删除,所以不,这不起作用。卸载后保留的唯一数据是存储在外部存储(通常但不总是 SD 卡)的公共目录中的数据。在卸载过程中,您的应用程序在外部存储上的私有目录以及您的数据库SharedPreferences
等将被删除。
使用外部存储的公共区域来尝试为此目的保存用户数据是一种糟糕的形式(而且不是很可靠)。正如@anoop 建议的那样,跨设备存储用户数据或卸载/重新安装周期的一般问题的正确解决方案是将其发送到服务器。