android中的共享引用问题
在这里,我的数据无法正确保存。我的代码出了什么问题。请尽量方便。 上述代码的注释也在检查中,但没有任何效果。首先,android中的共享引用问题,android,sharedpreferences,Android,Sharedpreferences,在这里,我的数据无法正确保存。我的代码出了什么问题。请尽量方便。 上述代码的注释也在检查中,但没有任何效果。首先,onStop()“可能”永远不会被调用(请参见活动生命周期),实践是将数据保存在onPause()方法中 也许尝试添加更多日志以查看发生了什么 是否调用了onStop() 保存/加载的值是什么 等等 首先,onStop()“可能”永远不会被调用(参见活动生命周期),实践是将数据保存在onPause()方法中 也许尝试添加更多日志以查看发生了什么 是否调用了onStop() 保存/
onStop()
“可能”永远不会被调用(请参见活动生命周期),实践是将数据保存在onPause()
方法中
也许尝试添加更多日志以查看发生了什么
- 是否调用了
李>onStop()
- 保存/加载的值是什么李>
- 等等
onStop()
“可能”永远不会被调用(参见活动生命周期),实践是将数据保存在onPause()
方法中
也许尝试添加更多日志以查看发生了什么
- 是否调用了
李>onStop()
- 保存/加载的值是什么李>
- 等等
public class WordDisplay extends Activity {
private int level;
private int group;
private int set;
private WordDisplay mContext=this;
private int l;
private int g;
private int s;
SharedPreferences preferences;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.wordset);
set_Word_Display_Event();
loadPreferences();
}
protected void loadPreferences() {
preferences = PreferenceManager.getDefaultSharedPreferences(this);
// preferences = getSharedPreferences("one", Context.MODE_PRIVATE);
l= preferences.getInt("Level", 0);
g=preferences.getInt("Group", 0);
s= preferences.getInt("Set", 0);
// Log.d("lll"," - "+preferences.getInt("level",0));
}
@Override
protected void onStop() {
super.onStop();
savePreferences(this.level,this.group,this.set);
}
protected void savePreferences(int level, int group, int set) {
preferences = PreferenceManager.getDefaultSharedPreferences(this);
//preferences = getSharedPreferences("one", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("Level", l);
editor.putInt("Group", g);
editor.putInt("Set", s);
editor.commit();
//return getPreferences(s).getInt("Set", 0);
}
}
然后始终使用成员函数:
public static final String PREFS_NAME = "MyPreferences";
通常情况下,没有魔法可施
使用类中的最后一个字符串常量进行尝试:
public class WordDisplay extends Activity {
private int level;
private int group;
private int set;
private WordDisplay mContext=this;
private int l;
private int g;
private int s;
SharedPreferences preferences;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.wordset);
set_Word_Display_Event();
loadPreferences();
}
protected void loadPreferences() {
preferences = PreferenceManager.getDefaultSharedPreferences(this);
// preferences = getSharedPreferences("one", Context.MODE_PRIVATE);
l= preferences.getInt("Level", 0);
g=preferences.getInt("Group", 0);
s= preferences.getInt("Set", 0);
// Log.d("lll"," - "+preferences.getInt("level",0));
}
@Override
protected void onStop() {
super.onStop();
savePreferences(this.level,this.group,this.set);
}
protected void savePreferences(int level, int group, int set) {
preferences = PreferenceManager.getDefaultSharedPreferences(this);
//preferences = getSharedPreferences("one", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("Level", l);
editor.putInt("Group", g);
editor.putInt("Set", s);
editor.commit();
//return getPreferences(s).getInt("Set", 0);
}
}
然后始终使用成员函数:
public static final String PREFS_NAME = "MyPreferences";
通常情况下,没有魔法可施
您的意思是,onStop()方法变为onPause()方法。我说得对吗?我这样做了,但同样的问题再次出现。是的,我的意思是关于onPause()。除此之外,我没有发现任何错误,但由于您没有发布修改l、g、s的代码,因此我只建议使用日志。显示有关这些l、g、s更新的更多代码?在savePreferences方法中,为什么不保存In参数中的level、group、set值?为什么用l,g,s来代替呢?它们是从哪里来的?因为你没有发布所有的代码,所以很难说,但是把l、g、s和级别、组都设置为私有成员似乎很奇怪;有问题吗?哇,很好,我把l,g,s改成了level,group,set,我解决了这个问题,我还伪造了调用方法set\u Word\u Display\u method()。谢谢,先生。你的意思是,onStop()方法变为onPause()方法。我说得对吗?我这样做了,但同样的问题再次出现。是的,我的意思是关于onPause()。除此之外,我没有发现任何错误,但由于您没有发布修改l、g、s的代码,因此我只建议使用日志。显示有关这些l、g、s更新的更多代码?在savePreferences方法中,为什么不保存In参数中的level、group、set值?为什么用l,g,s来代替呢?它们是从哪里来的?因为你没有发布所有的代码,所以很难说,但是把l、g、s和级别、组都设置为私有成员似乎很奇怪;有问题吗?哇,很好,我把l,g,s改成了level,group,set,我解决了这个问题,我还伪造了调用方法set\u Word\u Display\u method()。谢谢,先生。很抱歉,它不能工作。我将Context.MODE_PRIVATE更改为0,并将字符串作为您的想法。但是什么也没发生。很抱歉,它不能工作。我将Context.MODE_PRIVATE更改为0,并将字符串作为您的想法。但什么也没发生。