gpt4 book ai didi

android - Activity 关闭时共享首选项数据未清除

转载 作者:行者123 更新时间:2023-12-02 17:14:41 24 4
gpt4 key购买 nike

在我的应用程序中,我使用了地点选择器。地点选择器提供的数据使用共享首选项发送到 3 个不同的 Activity 。并在 TextView 中显示此数据。问题是当我关闭 Activity 并再次打开该 Activity 时,我的数据仍然可见在 TextView 中。甚至当我在 onDestroy() 中清除它时。

这是我从地点选择器发送数据的代码:

            SharedPreferences settings = getSharedPreferences("city_address", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = settings.edit();
editor.putString("city_address", (String) cityAddress);
editor.putString("city_name", (String) city);
editor.commit();

Intent intent = new Intent(this, CleanlinessActivity.class);
startActivity(intent);

在 CleaninessActivity 的 onCreate() 中使用此代码设置数据

     SharedPreferences settings = getSharedPreferences("city_address", Context.MODE_PRIVATE);
String n = settings.getString("city_name", "Enter Location");
String a = settings.getString("city_address", "");
cityname.setText(n);
cetlocation.setText(a);

我在 CleaninessActivity 中使用此代码清除了数据

     @Override
protected void onDestroy() {
super.onDestroy();
SharedPreferences settings = getSharedPreferences("city_address", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = settings.edit();
editor.remove("city_address");
editor.clear().commit();
}

最佳答案

关闭应用程序意味着只需单击主页按钮,然后 onDestroy() 就不会被调用,您可以回顾一下 Android 生命周期 here如果您所做的只是单击主页按钮,请考虑将代码移至 onStop(),否则您需要在 remove(. ..) android 文档指出“在编辑器中标记应删除首选项值,一旦调用 commit(),这将在实际首选项中完成。”

关于android - Activity 关闭时共享首选项数据未清除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49413879/

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