SharedPreferences.getBoolean为默认值返回true

hue*_*y77 3 android android-studio android-sharedpreferences

出于某种原因,每次返回默认值都为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);
Run Code Online (Sandbox Code Playgroud)

我不确定它为什么这样做,因为它之前只是将值设置为false.

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

我已经看过的问题,

Android - 即使我存储了true,SharedPreference.getBoolean检索为false?

SharedPreferences.getBoolean每次都返回true

上面的代码也是我第一次访问它,根据我的理解,它应该设置为false,因为它是第一次创建.(关于这个问题的第一个答案提到这个,除非我错了)

共享首选项的android默认值

Dak*_*ple 6

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

<application
    android:allowBackup="false"
    ...>
Run Code Online (Sandbox Code Playgroud)

请参阅:https://developer.android.com/guide/topics/data/backup.html


Fer*_*tsu 0

您应该将代码粘贴到将值设置为 false 的位置。如果您显式地将其设置为 false 并将 false 作为默认值传递,则此方法没有理由返回 true,应该不可能。也许有一种方法,您可以应用某种逻辑来返回 true,或者您在看到该值后没有使用 commit 方法。

你检查过这个问题了吗?

每次 Android 时 SharedPreferences.getBoolean 都会返回 true - 即使我存储 true,SharedPreference.getBoolean 也会检索 false?