我是Android的新手,有点像Java(不要问)
我想使用共享首选项,直到今天一切正常,但在我的新项目中,共享首选项不会保存数据。
在我的onCreate方法中,我有以下代码:
preferences = this.getSharedPreferences(KEY, MODE_PRIVATE);
editor = preferences.edit();
preferences.getFloat(TESTEPFLOAT, 0);
preferences.getFloat(TESTCURRENTEPFLOAT, 0);
preferences.getInt(TESTLEVEL, 1);
在我的onDestroy方法中:
@Override
public void onDestroy(){
super.onDestroy();
editor.putInt(TESTLEVEL, level);
editor.putFloat(TESTEPFLOAT, ep);
editor.putFloat(TESTCURRENTEPFLOAT, currentEP);
editor.apply();
}
我不知道问题出在哪里,我希望有人可以帮助我
改为:
preferences = this.getSharedPreferences(KEY, MODE_PRIVATE);
preferences.getFloat(TESTEPFLOAT, 0);
preferences.getFloat(TESTCURRENTEPFLOAT, 0);
preferences.getInt(TESTLEVEL, 1);
保存您的数据:
@Override
protected void onPause() {
super.onPause();
preferences = this.getSharedPreferences(KEY, MODE_PRIVATE);
editor = preferences.edit();
editor.putInt(TESTLEVEL, level);
editor.putFloat(TESTEPFLOAT, ep);
editor.putFloat(TESTCURRENTEPFLOAT, currentEP);
editor.apply();
}
或使用editor.commit();
立即保存数据
不要使用onDestroy()。无法保证它会被调用。如果你在这个方法中设置一个断点,我的猜测就是你认为它没有被调用。
正如@Gavin Wright所说,qazxsw poi每次都不会被召唤。将代码移动到qazxsw poi。 onDestroy
保证每次离开您的活动时都会被调用。
onPause()