Java SharedReferences不返回默认值

Java SharedReferences不返回默认值,java,android,Java,Android,我有一个SharedReferences,并且我已经创建了一个方法,用于检查用户是否是第一次使用该应用程序。但它总是返回与默认值相反的值 我的代码: public static Boolean getFirstOnApp(Context context) { SharedPreferences pref = context.getSharedPreferences(LOGIN_PREFS_NAME, Context.MODE_PRIVATE); return pref.getB

我有一个SharedReferences,并且我已经创建了一个方法,用于检查用户是否是第一次使用该应用程序。但它总是返回与默认值相反的值

我的代码:

public static Boolean getFirstOnApp(Context context) {
    SharedPreferences pref =  context.getSharedPreferences(LOGIN_PREFS_NAME, Context.MODE_PRIVATE);
    return pref.getBoolean(KEY_FIRST_TIME_ON_APP, true);
}
Is总是返回
false

我在我的控制器上调用它:

 if (SaveSharedPreferences.getFirstOnApp(context)) {
            fabAtivaMapeamento.performClick();
            SaveSharedPreferences.setFirstOnApp(context, false);
        }
saveSharedReferences.setFirstOnApp(上下文,false)以前从未被调用过。只有在

我已经卸载了应用程序,强迫它停止,清除了数据和缓存


如何解决?

编辑-检查以下各项是否有效

public static Boolean getFirstOnApp(Context context) {
    SharedPreferences pref =  context.getSharedPreferences(LOGIN_PREFS_NAME, Context.MODE_PRIVATE);
    //Check if the shared preference key exists.
    //This way, you can determine if the fault is here or elsewhere.
    if (pref.contains(KEY_FIRST_TIME_ON_APP)) {
        return pref.getBoolean(KEY_FIRST_TIME_ON_APP, true);
    } else {
        return true;
    }
}


检查您是否已将应用程序设置为允许在清单中进行备份
android:allowBackup=“true”
。 将其设置为false,卸载然后重新安装应用程序

android:allowBackup=“false”
如果无法解决问题,请尝试在清单中设置以下内容,卸载应用程序,然后重新安装

android:fullBackupContent="false"

编辑-检查以下各项是否有效

public static Boolean getFirstOnApp(Context context) {
    SharedPreferences pref =  context.getSharedPreferences(LOGIN_PREFS_NAME, Context.MODE_PRIVATE);
    //Check if the shared preference key exists.
    //This way, you can determine if the fault is here or elsewhere.
    if (pref.contains(KEY_FIRST_TIME_ON_APP)) {
        return pref.getBoolean(KEY_FIRST_TIME_ON_APP, true);
    } else {
        return true;
    }
}


检查您是否已将应用程序设置为允许在清单中进行备份
android:allowBackup=“true”
。 将其设置为false,卸载然后重新安装应用程序

android:allowBackup=“false”
如果无法解决问题,请尝试在清单中设置以下内容,卸载应用程序,然后重新安装

android:fullBackupContent="false"

用这个来检查是否是第一次

SharedPreferences pref = getSharedPreferences(LOGIN_PREFS_NAME, Context.MODE_PRIVATE);
        if (pref.getBoolean(KEY_FIRST_TIME_ON_APP, false)) {

           //in here it's not for first time

        } else {

             //in here it's first time
        }

用这个来检查是否是第一次

SharedPreferences pref = getSharedPreferences(LOGIN_PREFS_NAME, Context.MODE_PRIVATE);
        if (pref.getBoolean(KEY_FIRST_TIME_ON_APP, false)) {

           //in here it's not for first time

        } else {

             //in here it's first time
        }


它保持错误,总是错误。我已经更新了我的答案,请检查它。检查首选项是否包含该键。您应该能够使用调试器来确定即使在卸载应用程序后,
SharedReference
是否仍然存在。然后问题就出在其他地方,在卸载和重新安装应用程序后,密钥不应该存在。即使清理数据并卸载数据,密钥仍然存在。我已经创建了新的首选项文件。而且它起作用了。我不知道为什么,但是,工作。它保持错误,总是错误。我已经更新了我的答案,请检查它。检查首选项是否包含该键。您应该能够使用调试器来确定即使在卸载应用程序后,
SharedReference
是否仍然存在。然后问题就出在其他地方,在卸载和重新安装应用程序后,密钥不应该存在。即使清理数据并卸载数据,密钥仍然存在。我已经创建了新的首选项文件。而且它起作用了。我不知道为什么,但是,工作。但这就是我所做的,不是吗?更改此行return
pref.getBoolean(在应用程序上输入第一次时间,true)进入
pref.getBoolean(在应用程序上输入第一次,错误)在此之后,如果有效或无效,请告诉我我已更改,并且调用了else语句。如果我的答案有助于您,请接受它以帮助其他人,但这是我所做的,不是吗?更改此行return
pref.getBoolean(在应用程序上键入\u FIRST\u TIME\u,true)进入
pref.getBoolean(在应用程序上输入第一次,错误)在此之后,如果有效或无效,请让我知道我已更改,并且调用了else语句。如果我的答案帮助您,请接受它以帮助您可以使用的其他人,kesho是一个用于缓存任何对象的简单库。我希望对你有帮助,你可以使用,kesho是一个简单的库,用于缓存任何对象。我希望能对你有所帮助