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