【问题标题】:Storing Settings in Android After App Uninstall卸载应用程序后在 Android 中存储设置
【发布时间】:2012-06-15 04:02:31
【问题描述】:

我正在开发一个 Android 应用程序。此应用程序存储与其功能相关的偏好(用户设置),例如首选图像质量等。还有购买。

我的问题是:如何将这些设置存储在 Android 中,即使应用程序被删除,它们也会保持不变。

专门购买。我希望用户能够购买应用内功能,卸载应用,如果他重新安装应用并按下“恢复购买”按钮,之前购买的功能将被恢复。

我目前正在使用 Android 的 SharedPreferences 来存储这些设置。我想评论一下这是否适合我的目的。

【问题讨论】:

    标签: android


    【解决方案1】:

    如果您使用共享首选项,它将不起作用。我们无法使用共享首选项永久存储数据。最好的方法是使用 Web 服务作为后端。

    【讨论】:

    • 这在一般情况下是正确的,但在应用内计费的情况下,这不是正确的做法,这是提问者正在处理的具体场景。
    • 正确,但反馈仍然有用。谢谢
    【解决方案2】:

    针对您的具体情况,简短的回答是在您设置应用内结算时使用 "managed by user account" 购买类型。

    对于一般情况,您的应用程序的SharedPreferences 在您的应用程序被卸载时被删除,所以不,这不起作用。卸载后唯一保留的数据是存储在外部存储(通常但不总是 SD 卡)的 public 目录中的数据。在卸载过程中,您的应用在外部存储上的私有目录以及您的数据库、SharedPreferences 等都会被删除。

    使用外部存储的公共区域来尝试为此目的保存用户数据是一种糟糕的形式(而且不是很可靠)。正如@anoop 建议的那样,跨设备存储用户数据或卸载/重新安装周期的一般问题的正确解决方案是将其发送到服务器。

    【讨论】:

    • 好吧,在这种情况下,无需跨设备传输数据。卸载/重新安装后仅在同一设备中。因此,如果安装并重新安装应用程序,“由用户帐户管理”购买类型将保留?
    • @VascoPatricio 您需要阅读有关应用内计费的文档。当您设置应用内结算时,您可以在“托管”和“非托管”之间进行选择——托管意味着当您的应用重新安装时,它可以向应用内结算服务询问该特定用户的哪些项目(如果有)已经购买了。
    • 我明白了。我不知道那件事。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-26
    • 2013-03-05
    • 1970-01-01
    • 1970-01-01
    • 2021-05-07
    • 2015-05-01
    • 2012-03-24
    相关资源
    最近更新 更多