我开发了一个应用程序,它将一个布尔值存储到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();它将被清除以进行此安装。
答案 0 :(得分:1)
是的,我遇到了同样的问题。如果您的应用程序已安装在设备中,并且您尝试在旧应用程序之上安装新应用程序,则会出现此问题。 Android只是覆盖了一些东西,从而使你的偏好就像它们一样。所以你需要做的是,你必须卸载你的应用程序,然后才能重新安装你的应用程序。
答案 1 :(得分:0)
我也使用三星galaxy s 2.2.1版,并使用过SharedPreference,但我没有遇到任何此类问题。确保您没有使用全局SharedPreference名称并重新检查代码。我相信你会找到它,如果你仍然发现问题,那么请展示你的代码。