Android-эквивалент NSUserDefaults в iOS


104

Хочу сохранить несколько простых данных. На iPhone я могу сделать это с помощью NSUserDefaultsObjective-C.

Что такое аналогичная команда здесь, в Android?

Я просто сохраняю несколько переменных, чтобы их можно было использовать повторно, пока установлено приложение. Я не хочу использовать сложную базу данных только для этого.

Ответы:


212

Это самое простое решение, которое я нашел:

//--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);  

Где контекст "является текущий контекст (например , в подклассе деятельности может быть это ).


это способ хранить очень простые вещи, это просто и прямо по
делу

Я исправил ошибку в коде (вызывал несуществующие getPreferences, а не getSharedPreferences).
Бен Клейтон,

14
Обновление 2015: Android рекомендует использовать apply () сейчас вместо commit (), потому что apply () работает в фоновом потоке вместо немедленного сохранения постоянных данных и возможной блокировки основного потока.
AppsIntheParkNYC

Есть ли способ получить доступ к этим SharedPreferences из кода jni?
Игорь Ганапольский

2
Чтобы получить «контекст» изнутри AppCompatActivity, вы можете использоватьgetApplicationContext()
Brainware
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.