Java SharedReferences不返回默认值
我有一个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
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
是否仍然存在。然后问题就出在其他地方,在卸载和重新安装应用程序后,密钥不应该存在。即使清理数据并卸载数据,密钥仍然存在。我已经创建了新的首选项文件。而且它起作用了。我不知道为什么,但是,工作。但这就是我所做的,不是吗?更改此行returnpref.getBoolean(在应用程序上输入第一次时间,true)编码>进入pref.getBoolean(在应用程序上输入第一次,错误)代码>在此之后,如果有效或无效,请告诉我我已更改,并且调用了else语句。如果我的答案有助于您,请接受它以帮助其他人,但这是我所做的,不是吗?更改此行returnpref.getBoolean(在应用程序上键入\u FIRST\u TIME\u,true)编码>进入pref.getBoolean(在应用程序上输入第一次,错误)代码>在此之后,如果有效或无效,请让我知道我已更改,并且调用了else语句。如果我的答案帮助您,请接受它以帮助您可以使用的其他人,kesho是一个用于缓存任何对象的简单库。我希望对你有帮助,你可以使用,kesho是一个简单的库,用于缓存任何对象。我希望能对你有所帮助