在活动的onDestroy()方法中我想将一些SharedPreferences设置为初始值。大约一个月前左右这个工作。因此,当用户通过单击主页按钮旁边的按钮关闭应用程序并关闭它(不知道如何描述它)时,调用onDestroy()并保存值 - 我希望它们仅在保存时保存该应用程序完全关闭。
任何想法为什么这不再起作用或怎么做才能解决它?
谢谢你! public void onDestroy() {
super.onDestroy();
if(isFinishing()) {
SharedPreferences gpsPref = getSharedPreferences(getString(R.string.preferences_no_gps), Context.MODE_PRIVATE);
SharedPreferences.Editor editorGps = gpsPref.edit();
editorGps.putString(getString(R.string.saved_no_gps), "0");
editorGps.commit();
SharedPreferences visibilityPref = getSharedPreferences(getString(R.string.preferences_visibility), Context.MODE_PRIVATE);
SharedPreferences.Editor editorVisibility = visibilityPref.edit();
editorVisibility.putString(getString(R.string.saved_visibility), "123");
editorVisibility.commit();
}
}
顺便说一下,如果我把代码放入if子句中,它就没有区别了。
答案 0 :(得分:1)
没有可靠的方法来检测它。因为活动没有完成。它被杀了。在这种情况下,系统尝试尽快终止应用程序。请检查此answer
答案 1 :(得分:0)
我的想法
onResume(){
// below recovery code
}
onPause(){
SharedPreferences gpsPref = getSharedPreferences(getString(R.string.preferences_no_gps), Context.MODE_PRIVATE);
SharedPreferences.Editor editorGps = gpsPref.edit();
editorGps.putString(getString(R.string.saved_no_gps), "0");
editorGps.commit();
SharedPreferences visibilityPref = getSharedPreferences(getString(R.string.preferences_visibility), Context.MODE_PRIVATE);
SharedPreferences.Editor editorVisibility = visibilityPref.edit();
editorVisibility.putString(getString(R.string.saved_visibility), "123");
editorVisibility.commit();
}