Android相当于iOS中的NSUserDefaults

Android相当于iOS中的NSUserDefaults,android,ios,nsuserdefaults,code-translation,Android,Ios,Nsuserdefaults,Code Translation,我想保存一些简单的数据。在iPhone上,我可以用Objective-C实现 Android中的类似命令是什么 我只是保存了一些变量,以便在安装应用程序时重用。我不想仅仅为了实现这一点而使用复杂的数据库。这是我找到的最简单的解决方案: //--Init int myvar = 12; //--SAVE Data SharedPreferences preferences = context.getSharedPreferences("MyPreferences", Context.MODE_

我想保存一些简单的数据。在iPhone上,我可以用Objective-C实现

Android中的类似命令是什么


我只是保存了一些变量,以便在安装应用程序时重用。我不想仅仅为了实现这一点而使用复杂的数据库。

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

//--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”是当前上下文(例如,在活动子类中可能是这样)。

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