重新安装后,Android SharedReference不清晰

重新安装后,Android SharedReference不清晰,android,installation,Android,Installation,我开发了一个应用程序,它将布尔值存储到SharePreference,以确定应用程序是否在安装后第一次启动。问题是,当我卸载并再次安装它时,它仍然记得我在以前的安装中设置的所有SharedReference,我无法检查应用程序是否在安装后的第一时间启动。 这发生在三星galaxy s 2.2.1版上 我很感激你关于如何检查第一次启动的建议 我发现它也很奇怪,但我已经用其他设备测试了它,相同版本和不同版本,没有发现这个问题。我只在一台设备上发现这个问题 这是我的代码,如果发现问题请告诉我:

我开发了一个应用程序,它将布尔值存储到
SharePreference
,以确定应用程序是否在安装后第一次启动。问题是,当我卸载并再次安装它时,它仍然记得我在以前的安装中设置的所有
SharedReference
,我无法检查应用程序是否在安装后的第一时间启动。 这发生在三星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。
注意:我总是卸载和安装来测试它。我已尝试在设置中清除此应用程序数据,但问题仍然相同,但如果执行此操作,则可以。编辑()。清除()。提交();此安装将被清除。

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

是的,我遇到了相同的问题。如果您的应用程序已安装在设备中,并且如果您试图在旧应用程序的基础上安装新应用程序,则会出现此问题。Android只是覆盖了一些东西,从而让你的偏好保持原样。所以你要做的是,你必须卸载你的应用程序,然后才能重新安装你的应用程序

您是否在其他设备上尝试过它?请显示读取首选项并验证它的代码。以下是我的代码:公共静态布尔值isFirstStart(上下文上下文){SharedReferences pref=Context.GetSharedReferences(PREFS_名称,Context.MODE_PRIVATE);布尔值isFirstTime=pref.getBoolean(KEY_是_FIRST_时间,true);如果(isFirstTime){sharedReferences.Editor Editor=pref.edit();Editor.putBoolean(KEY_是_FIRST_TIME,false);Editor.putBoolean(“test”,false);Editor.commit();}返回isFirstTime;}你的代码看起来很好。更改首选项名称可能与其他应用程序的首选项名称冲突,我猜。好的,我会尝试。我已经测试了google iosched 2011,它在该设备上存在相同的问题。它不会显示第二次安装的EULA。感谢vineetska,我通过更改将我的程序包名称添加到首选项名称来解决它。谢谢