Android 13(API 级别 33)下明显的 SharedPreferences 问题

问题描述 投票:0回答:1

我使用 SharedPreferences API 在我的 Android 应用程序中保存和检索首选项。

    // Retrieve preferences
SharedPreferences settings = getSharedPreferences("MyPreferences", MODE_PRIVATE);
mnSpinnerPos = settings.getInt("CAT_POS", 0);
munSpinnerVal = settings.getLong("CAT_VAL", 1);


// Set preferences
SharedPreferences settings = getSharedPreferences("MyPreferences", MODE_PRIVATE);
SharedPreferences.Editor editor = settings.edit();
editor.putInt("CAT_POS",mnSpinnerPos);
editor.putLong("CAT_VAL", munSpinnerVal);
editor.apply();

我使用首选项在微调器控件中设置默认选择。在之前的 Android 版本(例如 Android 9)下,这工作得很好。

但是,当我将其安装在Android 13的Android手机上时,似乎可以正常工作几天,然后就不再工作了。 它不是默认为特定的微调器值,而是默认为第一个值 (mnSpinnerPos=0)。

只要我让应用程序在后台运行,就会检索首选项并正确初始化微调器。但是,当我通过“关闭所有”“强制关闭”应用程序时,就会出现问题。请注意,问题仅在几天后开始:当我在全新安装后强制关闭应用程序时,它仍然可以工作一段时间(几天)

我在模拟器中测试了多次,但它总是有效。只有当我在物理手机上安装发行版时,我才会遇到问题。

谁可以帮助我?

非常感谢!

sharedpreferences android-tiramisu
1个回答
-1
投票

我在我们的一个项目中收到了类似的投诉,目前正在调查。

我们在 SharedPreferences 中存储一些值,这些值指示用户在我们的应用程序中拥有的访问级别。他们需要验证自己的身份才能获得更高级别的访问权限,然后将其保存到 SP。 对于一些用户来说,据我们所知,所有 Android 13 都在大约一周/一周半后失去了访问权限。

您有没有弄清楚问题出在哪里?任何帮助将不胜感激。

© www.soinside.com 2019 - 2024. All rights reserved.