Android 相当于 iOS 中的 NSUserDefaults

Posted

技术标签:

【中文标题】Android 相当于 iOS 中的 NSUserDefaults【英文标题】:Android equivalent of NSUserDefaults in iOS 【发布时间】:2011-04-04 19:09:30 【问题描述】:

我想保存一些简单的数据。在 iPhone 上,我可以在 Objective-C 中使用 NSUserDefaults 来完成。

android 中类似的命令是什么?

我只是保存了一些变量,只要安装了应用程序就可以重复使用。我不想为此使用复杂的数据库。

【问题讨论】:

【参考方案1】:

这是我找到的最简单的解决方案:

//--Init
int myvar = 12;


//--SAVE Data
SharedPreferences preferences = context.getSharedPreferences("MyPreferences", Context.MODE_PRIVATE);  
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("var1", myvar);
editor.commit();


//--READ data       
myvar = preferences.getInt("var1", 0);  

'context' 是当前上下文(例如,在活动子类中可能是 this)。

【讨论】:

这是存储非常简单的东西的方法,简单直接 我修复了代码中的错误(调用了不存在的 getPreferences,而不是 getSharedPreferences)。 2015 年更新:Android 建议现在使用 apply() 而不是 commit(),因为 apply() 在后台线程上运行,而不是立即存储持久数据并可能阻塞主线程。 有没有办法从 jni 代码访问这个 SharedPreferences? 要从AppCompatActivity 中获取“上下文”,您可以使用getApplicationContext()

以上是关于Android 相当于 iOS 中的 NSUserDefaults的主要内容,如果未能解决你的问题,请参考以下文章

iOS中的Android基本名称值对列表

iOS 中是不是有相当于 Android 旋转矢量的功能?

iOS 中的 XCTest 和 UI 测试

iOS中是不是有任何相当于Android的服务?

使用 NSUser Defaults 保存当前游戏分数(不是高分)?

NSUser Defaults 保存按钮状态并再次显示