【问题标题】:How to prevent a shared preference from being clear in setting如何防止共享偏好在设置中变得清晰
【发布时间】:2013-12-16 12:00:54
【问题描述】:

我不想让任何人清除我的应用程序sharedPreference:这可能吗?

【问题讨论】:

  • 您找到解决方案了吗?
  • 我找到了另一种方法,检查我的编辑。
  • 但我不想将数据库保存在远程服务器上!相反,我想阻止清除 sharedPref。谢谢你的回答。。
  • 明白,答案只有一个:不可能;-)。
  • 我找到了一种方法来防止数据从共享首选项中清除...查看我的答案::)))

标签: android sharedpreferences


【解决方案1】:

嘿,伙计,我在这里找到了一个答案,这是一种防止数据从共享首选项中清除的方法

android:manageSpaceActivity=".ActivityOfMyChoice" 添加到您的清单的application 标记中,例如:

    <application android:label="MyApp" android:icon="@drawable/icon" 
                 android:manageSpaceActivity=".ActivityOfMyChoice">

然后不是"Clear Data",而是"Manage Space" 的按钮,它启动ActivityOfMyChoice

它将调用我的活动并且活动在创建时完成:)

public class ActivityOfMyChoice extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        finish();

    }
}

现在您可以随心所欲地按“管理空间”! :)

此方法 100% 有效。

【讨论】:

  • 先生,您应该获得奖章。当所有人都说“你做不到”时,这是一个干净的解决方法。尊重
  • 虽然这在技术上可行,但这是一种不好的做法。
  • @slayton 你是对的,但没有其他办法,所以我们需要这样做:)
  • 太棒了。它帮了很多忙
  • @Hardik, 它的工作很完美。 实际上 我在上面读到了 cmets 这不是好方法/做法,你能不能解释一下如果我们使用这个有什么问题?
【解决方案2】:

我找到this similar question

未保存到 SD 卡的共享偏好设置和文件将被删除 当应用程序被卸载时。

卸载后保存到 SD 卡中的文件将保留,但是, 用户将有权读取、覆盖和删除这些文件 会的。

如果您需要真正的永久存储,最好的方法是 将数据远程存储在您控制的服务器上。

如果您不关心数据,则可以将其保存在 SD 卡上。

编辑

我认为this post 上的 BFil 回答非常好,检查一下。

我的最终判决

经过长时间的研究(出于我纯粹而疯狂的好奇心!),在设置清除后,没有办法(目前?)保留SharedPreference:唯一的办法是服务器保险库或Data Backup

【讨论】:

  • 我找到了一种方法来防止数据从共享首选项中清除...查看我的答案::)))
【解决方案3】:

在宣言中添加这个标签allowClearUserData=false。此代码已验证。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多