我正在使用 SharedPreferences 将我的 CheckBox 项目的状态保存在我的 ListView 中,以便在从 FragmentActivity A 切换到 FragmentActivity B 然后再切换回 FragmentActivity A 时不会丢失选中状态。如果用户退出,我想清除我的 SharedPreferences应用程序。
我的 SharedPreferences 在我的 BaseAdapter 类中初始化,如下所示:
private SharedPreferences sharedPreferences;
public static SharedPreferences.Editor editor;
我在 FragmentActivity A 中覆盖 onBackPressed() 方法并调用
MyBaseAdapter.editor.clear().commit();
如果用户通过单击后退按钮退出应用程序,我只能清除我的 SharedPreferences,但如果用户在应用程序运行时通过任务管理器终止应用程序,则不会清除 SharedPreferences。因此,当用户再次打开应用程序时,我的 ListView 中的 CheckBox 项目会被选中,这不应该被选中。当用户打开应用程序时,我的 ListView 中的 CheckBox 项目应该被取消选中。问题是如果我的应用程序在应用程序处于活动或运行状态时被用户通过任务管理器杀死,我该如何清除我的 SharedPreferences?
我尝试在 FragmentActivity A 上覆盖 onStop() 方法并调用
MyBaseAdapter.editor.clear().commit();
但是当我从 FragmentActivity A 导航到 FragmentActivity B 时,我的 SharedPreferences 被删除。当我在 FragmentActivity A 到 FragmentActivity B 之间切换时,我不想从 FragmentActivity A 丢失我的 ListView 中的 CheckBox 项的状态,反之亦然。