重新安装后Android SharedPreference不明确

时间:2011-08-01 05:19:19

标签: android installation

我开发了一个应用程序,它将一个布尔值存储到SharePreference,以确定应用程序是否在安装后第一次启动。问题是,当我再次卸载并安装它时,它仍然记得我之前安装时设置的所有SharedPreference,我无法检查应用程序是否在安装后第一次启动。 这发生在三星galaxy s 2.2.1版上。

我很感谢你在检查第一次开始时的建议。

我发现它也很奇怪,但我已经使用其他设备,相同版本和差异版本进行了测试,但未发现此问题。我只在一台设备上发现了这个问题。

这是我的代码,请告诉我你是否发现了错误:

   public static boolean isFirstStart(Context context) {
    SharedPreferences pref = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE);
    boolean isFirstTime = pref.getBoolean(KEY_IS_FIRST_TIME, true);
    if (isFirstTime) {
        SharedPreferences.Editor editor = pref.edit();
        editor.putBoolean(KEY_IS_FIRST_TIME, false);
        editor.putBoolean("test", false);
        editor.commit();
    }

    return isFirstTime;
}

此方法仅在第一次安装时返回true,但在以后安装时返回false。 注意:我总是卸载并安装以测试它。我已经尝试清除这个应用程序数据,在设置问题时仍然是相同的,但是如果这样做就可以了!pref.edit()。clear()。commit();它将被清除以进行此安装。

2 个答案:

答案 0 :(得分:1)

是的,我遇到了同样的问题。如果您的应用程序已安装在设备中,并且您尝试在旧应用程序之上安装新应用程序,则会出现此问题。 Android只是覆盖了一些东西,从而使你的偏好就像它们一样。所以你需要做的是,你必须卸载你的应用程序,然后才能重新安装你的应用程序。

答案 1 :(得分:0)

我也使用三星galaxy s 2.2.1版,并使用过SharedPreference,但我没有遇到任何此类问题。确保您没有使用全局SharedPreference名称并重新检查代码。我相信你会找到它,如果你仍然发现问题,那么请展示你的代码。