gpt4 book ai didi

android - Shared Pref 在某些高端设备(如三星)中返回错误值

转载 作者:行者123 更新时间:2023-12-02 04:36:11 24 4
gpt4 key购买 nike

下面是我创建共享首选项的代码

public SaveData(Context con) {
this.context = con;
emailSharedPreferences = context.getSharedPreferences(KEY_PREF_EMAIL, Context.MODE_PRIVATE);
emailEdit = emailSharedPreferences.edit();
}

对于集合数据

public void setData(boolean accepted) {
emailEdit = emailSharedPreferences.edit();
emailEdit.putBoolean(KEY, accepted);
emailEdit.apply();
}

获取数据

public Boolean getData() {
emailSharedPreferences = context.getSharedPreferences(KEY_PREF_EMAIL, Context.MODE_PRIVATE);
return emailSharedPreferences.getBoolean(KEY, false);
}

在我的应用程序启动器屏幕上,当我尝试获取数据时,它在某些设备上返回“true”。

现在如果我已经通过下面的代码创建了共享首选项

 private static SharedPreferences getPreferences(Context context) {
// return context.getSharedPreferences(PREF_NAME, MODE);
return PreferenceManager.getDefaultSharedPreferences(context);

}

private static SharedPreferences.Editor getEditor(Context context) {
return getPreferences(context).edit();
}

对于集合数据

public static void setData(Context context,boolean value){
try {
getEditor(context).putBoolean(KEY, value).commit();
} catch (Exception e) {
e.printStackTrace();
}
}

获取数据

 public static boolean getData(Context context){
try {
return getPreferences(context).getBoolean(KEY, false);
} catch (Exception e) {
e.printStackTrace();
return false;
}
}

现在它在所有设备上都运行良好。有人可以解释为什么会这样。

最佳答案

使用这个

emailEdit.commit();

在此之后

emailEdit.putBoolean(KEY, accepted);

关于android - Shared Pref 在某些高端设备(如三星)中返回错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42360814/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com