Android相当于iOS中的NSUserDefaults

chr*_*ler 99 android code-translation nsuserdefaults ios

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

Android中的类似命令是什么?

我只是保存了一些变量,只要安装了应用程序就可以重用.我不想使用复杂的数据库来做到这一点.

chr*_*ler 205

这是我发现的最简单的解决方案:

//--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);  
Run Code Online (Sandbox Code Playgroud)

其中'context'是当前上下文(例如,在一个活动子类中可能是这样).

  • 更新2015:Android建议现在使用apply()over commit(),因为apply()在后台线程上运行,而不是立即存储持久数据,并可能阻塞主线程. (13认同)
  • 要从“ AppCompatActivity”中获取“上下文”,可以使用“ getApplicationContext()” (2认同)