gpt4 book ai didi

android - 在 onPause() 和 onDestroy() 方法中保存 SharedPreferences 的区别

转载 作者:太空宇宙 更新时间:2023-11-03 11:39:35 25 4
gpt4 key购买 nike

我正在尝试保存一个 int 变量 int diff 但我不确定应该将其保存在 onPause() 或 onDestroy() 方法中。此变量在 fragment 中使用,静态附加到 MainActivity。

代码是基本的:

@Override
public void onDestroy() {
super.onDestroy();
SharedPreferences sp = this.getActivity().getSharedPreferences("myPrefsName",Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.putInt("myPrefsInt",diff);
editor.commit();
}

并检索它:

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

SharedPreferences sp = this.getActivity().getSharedPreferences("myPrefsName", Context.MODE_PRIVATE);
diff = sp.getInt("myPrefsInt",1);
}

最佳答案

无法保证 onDestroy 会被调用;一旦 Activity 被转移到后台,如果需要系统资源,即使不调用 onDestroy 也可以终止它。因此,您应该保存在 onPause 中。请注意,对于与 Activity 的特定实例关联的状态,onSaveInstanceStateonRestoreInstanceState 可能更合适;但是,onResume/onPause 对共享首选项等全局状态有意义。

关于android - 在 onPause() 和 onDestroy() 方法中保存 SharedPreferences 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27681366/

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