gpt4 book ai didi

android - 当我的应用程序通过任务管理器被杀死时如何清除我的 SharedPreferences?

转载 作者:搜寻专家 更新时间:2023-11-01 08:02:30 24 4
gpt4 key购买 nike

我正在使用 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 项目应该被取消选中。问题是,如果我的应用程序在 Activity 或运行时被用户通过任务管理器终止,我该如何清除我的 SharedPreferences?

我尝试在我的 FragmentActivity A 上覆盖 onStop() 方法并调用

MyBaseAdapter.editor.clear().commit();

但是当我从 FragmentActivity A 导航到 FragmentActivity B 时,我的 SharedPreferences 被删除了。当我在 FragmentActivity A 和 FragmentActivity B 之间切换时,我不想丢失 FragmentActivity A 的 ListView 中 CheckBox 项目的状态,反之亦然。

最佳答案

如果您想在应用启动时清除它们,为什么要使用共享首选项?

共享首选项是一种存储小首选项并稍后读取它们的方式,用于诸如设置之类的事情。

您可以只在您的 Activity 中定义静态变量并在您的其他 Activity 中读取它们。如果您确实想要清除共享首选项,您应该在您的应用启动后在启动时执行此操作杀了。静态变量示例:

public static int i;
if(I want to set a value){
i = 1;
}

要在另一个 Activity 中访问它:

if(MainActivity.i == 1){
//do something
}

关于android - 当我的应用程序通过任务管理器被杀死时如何清除我的 SharedPreferences?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19064848/

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