【问题标题】:Resetting shared preferences upon reinstallation重新安装时重置共享首选项
【发布时间】:2013-10-07 05:39:21
【问题描述】:

在重新安装应用程序时,是否有任何方法可以删除或重置共享偏好数据,而无需卸载并安装应用程序?

我的意思是,目前,我正在开发一个使用共享首选项的应用程序,但由于我仍在开发它,我在进行更改后继续运行并通过 Eclipse 将应用程序上传到测试手机。目前,如果不卸载旧版本然后再次上传应用程序,我无法从其预期过程的最开始(第一次之后)运行该应用程序。

【问题讨论】:

标签: android


【解决方案1】:

为此,在您的启动活动 onCreate() 方法中检查共享首选项文件是否存在,如果存在则删除它。然后在您想要的任何地方创建它。 您可以像这样检查首选项文件是否存在..

public boolean isFirstTime() {
        return getDatabasePath("your file name").exists();
    }

【讨论】:

  • 不推荐这样做,因为它假定首选项文件存储在硬编码路径中,这在未来的 Android 版本中可能不是真的。
  • 但是 android 人还没有发布任何将偏好文件存储在硬编码位置的版本..
  • 我相信这就是我所说的。使用硬编码路径是不好的做法,不应鼓励。
  • 没有硬编码你也可以那样做。我同意你不鼓励硬编码..
  • 非常感谢您的意见。
【解决方案2】:

清除以下活动:

Intent intent = new Intent(this, Login.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

清除您共享的首选项:

SharedPreferences pref = this.getSharedPreferences("mypref", Context.MODE_PRIVATE);
getSharedPreferences("pref", Context.MODE_PRIVATE).edit().clear().commit();

【讨论】:

    【解决方案3】:

    检查您的启动活动是否使用以下功能清除首选项:

        SharedPreferences prefs = this.getSharedPreferences("prefs", Context.MODE_PRIVATE);
        if (!prefs.getBoolean("FirstRun", true)) {
            // Not the first time so clear prefs
            prefs.edit().clear().commit();
        } else {
            // Set the value for future runs
            prefs.edit().putBoolean("FirstRun", false).commit();
        }
    

    【讨论】:

      猜你喜欢
      • 2011-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-25
      • 1970-01-01
      相关资源
      最近更新 更多