Использование SharedPreferences в Android

В Android SharedPreferences
обычно используется для хранения небольших данных, таких как настройки пользователя, параметры приложения или данные сессии. Он позволяет хранить пары "ключ-значение" для различных типов данных, таких как String
, int
, boolean
, float
и long
.
Вот как использовать SharedPreferences
для сохранения, получения и редактирования значений в Android:
1. Сохранение значений в SharedPreferences
Чтобы сохранить данные в SharedPreferences
, нужно получить его экземпляр и использовать Editor
для записи изменений.
// Шаг 1: Получаем экземпляр SharedPreferences
val sharedPreferences = getSharedPreferences("MyPreferences", Context.MODE_PRIVATE)
// Шаг 2: Получаем SharedPreferences Editor для внесения изменений
val editor = sharedPreferences.edit()
// Шаг 3: Сохраняем значения
editor.putString("key_string", "Hello, World!")
editor.putInt("key_int", 42)
editor.putBoolean("key_boolean", true)
// Шаг 4: Применяем или сохраняем изменения
editor.apply() // Асинхронно сохраняет изменения
// или
// editor.commit() // Синхронно сохраняет изменения (рекомендуется для немедленного сохранения)
apply()
: Сохраняет данные в фоновом потоке, что быстрее и не блокирует главный поток.commit()
: Мгновенно записывает данные в хранилище, но блокирует поток до завершения записи.
2. Получение значений из SharedPreferences
Чтобы получить данные из SharedPreferences
, используются методы get
, в которые передается ключ и значение по умолчанию на случай, если ключ не существует.
// Шаг 1: Получаем экземпляр SharedPreferences
val sharedPreferences = getSharedPreferences("MyPreferences", Context.MODE_PRIVATE)
// Шаг 2: Получаем значения по ключу
val savedString = sharedPreferences.getString("key_string", "Default Value")
val savedInt = sharedPreferences.getInt("key_int", 0)
val savedBoolean = sharedPreferences.getBoolean("key_boolean", false)
// Используем полученные значения
println("String: $savedString, Int: $savedInt, Boolean: $savedBoolean")
Значения по умолчанию: Второй аргумент в методах get
— это значение по умолчанию, которое возвращается, если ключ не существует.
3. Редактирование существующих значений в SharedPreferences
Чтобы изменить существующее значение, следуйте тому же процессу, что и при сохранении. Новое значение перезапишет предыдущее, связанное с тем же ключом.
// Шаг 1: Получаем SharedPreferences Editor для редактирования значений
val editor = sharedPreferences.edit()
// Шаг 2: Редактируем значения
editor.putString("key_string", "New Value")
// Шаг 3: Применяем или сохраняем изменения
editor.apply()
4. Удаление значений из SharedPreferences
Если необходимо удалить конкретное значение или очистить все данные:
Чтобы удалить конкретное значение:
val editor = sharedPreferences.edit()
editor.remove("key_string")
editor.apply() // Или editor.commit()
Чтобы удалить все значения:
val editor = sharedPreferences.edit()
editor.clear()
editor.apply() // Или editor.commit()
Резюме
- Для сохранения значений: Используйте методы
put<Type>()
сapply()
илиcommit()
. - Для получения значений: Используйте методы
get<Type>()
с указанием значения по умолчанию. - Для редактирования значений: Просто перезапишите их с помощью
put<Type>()
. - Для удаления значений: Используйте
remove()
илиclear()
.