请看下面的代码
@Override
protected void onStop() {
super.onStop();
SharedPreferences prefs = getSharedPreferences("screenPref", Context.MODE_PRIVATE);
SharedPreferences.Editor edit = prefs.edit();
edit.putString("active_screen", activeScreenText);
if(edit.commit()){
Log.i("APP", "SAVED!!"); // LOGCAT Always execute this piece of code
}
}
// onCreate
SharedPreferences pref = getSharedPreferences("screenPref", Context.MODE_PRIVATE);
activeScreen.setSummary(pref.getString("active_screen", "Never"));
当用户从 ListPreference 中选择一个选项时,该选项将保存在“activeScreenText”变量中。如果我重新启动应用程序(主页按钮,然后导航回它),它会完美运行。加载字符串并设置此首选项的摘要。但是如果 android 杀死了我的应用程序(或者如果我强制关闭它),那么这种变化不会持久。每次我的应用程序内存不足时,我都会得到“从不”,但相应的列表首选项保持相同的值。
(我在 listpreference 中有几个选项,我想设置摘要,当前选择的值。)
例如:
ListPreference:-Never -Choice1 -Choice2 -Choice3
假设我选择 Choice3。当我选择值时,摘要设置正确。如果我退出应用程序并重新启动它,它会加载完美。如果我的应用程序被 android 强制关闭或杀死,则仍然选择 Choice3,但我的摘要值是默认值 ( Never )。
我究竟做错了什么?