gpt4 book ai didi

java - Android Java Sharedpreferences不会保存数据

转载 作者:行者123 更新时间:2023-12-01 21:37:05 24 4
gpt4 key购买 nike

在我“保存”一个字符串后,它将返回(在我的例子中)“错误”: html_value1 不是“”

主要 Activity :

  tools.getEditor(tools.getPreferences(getApplicationContext())).putString("wochea9a", html_value1);
tools.getEditor(tools.getPreferences(getApplicationContext())).putString("wocheb9a", html_value2);
tools.getEditor(tools.getPreferences(getApplicationContext())).commit();

警报服务 Activity :

   savedwochea9a =   tools.getPreferences(getApplicationContext()).getString("wochea9a", "error");
savedwocheb9a = tools.getPreferences(getApplicationContext()).getString("wocheb9a", "error");

工具:

public class tools {


static SharedPreferences preferences;
static SharedPreferences.Editor editor;




public static SharedPreferences getPreferences(Context context){
preferences = PreferenceManager.getDefaultSharedPreferences(context);
return preferences;
}
public static SharedPreferences.Editor getEditor(SharedPreferences preferences){
editor = preferences.edit();

return editor;
}
...

我该如何解决这个问题?

最佳答案

每次创建编辑器(使用 edit())时,您都必须按顺序调用 commit()apply()以便保存结果。

因此,您的代码应如下所示:

主要 Activity :

tools.getEditor(tools.getPreferences(getApplicationContext()))
.putString("wochea9a", html_value1)
.putString("wocheb9a", html_value2)
.commit(); // or .apply();

如果使用 apply() 效果会更好。该方法直接返回,在后台保存数据,不会阻塞线程。

关于java - Android Java Sharedpreferences不会保存数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36868635/

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