首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >安卓getDefaultSharedPreferences

安卓getDefaultSharedPreferences
EN

Stack Overflow用户
提问于 2012-05-28 22:19:11
回答 1查看 73.5K关注 0票数 61

我的代码是:

代码语言:javascript
复制
final String eulaKey = "mykey";
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
boolean hasBeenShown = prefs.getBoolean(eulaKey, false);

总是根据操作系统版本返回不同的值。在2.2、2.3.4、3.2、4.0.3中测试-返回正确的值。但是对于带有CianogenMod 7.1的2.3.7中兴刀片设备,结果总是错误的。我认为getBoolean的默认值。

下面是编写boolean的代码:

代码语言:javascript
复制
final String eulaKey = "mykey";
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean(eulaKey, true);
editor.commit();

有谁知道吗?

更新:将我当前的代码与以前版本的代码进行比较--代码没有差别。唯一的区别在于清单:代码在minVersion=8和targetVersion=8上运行良好,现在我使用Admob/的minversion=8和target=13 /because进行编译。也许有些API改变了,但我什么也没找到。

解决方案:快捷方式和菜单中的-Starting应用程序给我不同的DefaultSharedPreferences。在从我的代码中删除DefaultSharedPreferences之后--它工作得很完美。我不能简单地说:人们没有捷径,所以我不得不改变代码。

EN

回答 1

Stack Overflow用户

发布于 2021-03-12 19:00:51

如果您已经升级到目标API 30,请在您的gradle依赖项中删除以下代码:

implementation 'androidx.preference:preference-ktx:1.0.0'//For Kotlin项目

代码语言:javascript
复制
implementation 'androidx.preference:preference:1.1.1'//For Java Projects

重新同步Gradle后,更改来自的所有导入

代码语言:javascript
复制
import android.preference.PreferenceManager

代码语言:javascript
复制
import androidx.preference.PreferenceManager
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10786172

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档