Android SharedReferences.getBoolean为默认值返回true

Android SharedReferences.getBoolean为默认值返回true,android,android-studio,android-sharedpreferences,Android,Android Studio,Android Sharedpreferences,出于某种原因,对于默认值,每次都返回true。我卸载了我的应用程序并重新安装,我执行以下操作来初始化这些值。但是由于某种原因,布尔值被设置为true而不是false SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(LoadingActivity.this); final int locationType = prefs.getInt(Constants.PREFS_LOCATION,

出于某种原因,对于默认值,每次都返回true。我卸载了我的应用程序并重新安装,我执行以下操作来初始化这些值。但是由于某种原因,布尔值被设置为true而不是false

    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(LoadingActivity.this);
    final int locationType = prefs.getInt(Constants.PREFS_LOCATION, 0);
    final boolean skipWhatsNew = prefs.getBoolean(Constants.PREFS_DONT_SHOW_WHATS_NEW, false);

    Log.v("loading activity : " , " " + skipWhatsNew);
我不太清楚它为什么这样做,因为它以前只是将值设置为false

我已经看过类似的问题,但都没有帮助,所以任何帮助都很好,谢谢

我已经看过的问题

上面的代码也是我第一次访问它,据我所知,它应该设置为false,因为它是第一次创建的。(这个问题的第一个答案提到了这一点,除非我错了)


您应该将代码粘贴到将值设置为false的位置。如果您显式地将该方法设置为false并将false作为默认值传递,那么该方法没有理由返回true,这是不可能的。可能有一种方法,您正在应用某种逻辑,使得返回true成为可能,或者您在看到值后没有使用commit方法

你查过这些问题了吗


我无法理解为什么它会返回true作为默认值

因此,我找到的唯一解决方案是更改

getBoolean(Constants.PREFS_DONT_SHOW_WHATS_NEW, false);
我几乎把这个字符串改了一个字符,即“string”改为“string”

现在它返回默认值false。然后,我在我的应用程序的其他部分将其更改为true,然后重新启动应用程序,测试了偏好,结果仍然是true。然后,我卸载应用程序,每当我执行上述代码时,它就会重置回默认值false

我不知道为什么会这样。如果有人有任何想法,请告诉我


谢谢修复,我把它放在我的AndroidManifest中:

<application
    android:allowBackup="false"
    ...>

可能的重复项您需要查找并检查关键“常量”的轨迹。PREFS\u DONT\u SHOW\u WHATS\u NEW,此处设置为true,可能是在进入某些默认配置之前设置了值!我已经看过那个问题了。这个问题的解决方案是我在执行getBoolean(string,false)时所做的操作。谢谢@ChiskoIt没有被设置在任何地方。上面的代码是我第一次访问它。据我所知,它应该将默认值设置为false,因为它尚未创建。这个问题的第一个答案也是这么说的,所以我很困惑@ArfanMirza
常量。PREFS\u不显示新内容
。请不要在帖子中使用自己的常量。我们怎么知道里面有什么?只需使用字符串文字,就可以发布可复制的代码。上面的代码是我第一次访问它。据我所知,它应该将默认值设置为false,这是第二个参数。我的想法是,它应该设置为false,因为它在任何地方都没有被创建过。这个问题的第一个答案也是一样的,这就是为什么我感到困惑。下次我遇到这个问题时,我必须试试这个。显然,无论何时删除应用程序并卸载,它都不会删除缓存的数据。因此,我必须清除该选项,以便将其重置为默认设置。因此,一旦我将其设置为true,在我重置/清除缓存之前,它都是true。在调试过程中也出现了同样的问题。正是我需要的,谢谢!如果导致渐变生成错误,请将以下内容添加到应用程序标记中:tools:replace=“allowBackup”。详细信息:对我来说,同样的问题仍然存在,我已经尝试了很多事情,但什么都不会发生。我使用了你的技巧,现在显示第一次默认值为false。