Разработка
Что такое SharedPreferences
SharedPreferences в Android — это механизм хранения данных в виде пар ключ-значение, который используется для сохранения небольших объемов информации, таких как настройки приложения, флаги состояния и предпочтения пользователя.
Основные характеристики SharedPreferences
- Используется для хранения данных в формате
key-value
. - Данные сохраняются в XML-файле в приватной папке приложения.
- Предназначен для небольших объемов данных (например, строки, числа, булевы значения).
- Поддерживает работу с
String
,Int
,Boolean
,Float
,Long
. - Не подходит для хранения сложных структур (например, объектов или больших списков).
Как использовать SharedPreferences
1. Получение экземпляра SharedPreferences:
val sharedPreferences = getSharedPreferences("my_prefs", Context.MODE_PRIVATE)
2. Запись данных:
xxxxxxxxxx
val editor = sharedPreferences.edit()
editor.putString("username", "JohnDoe")
editor.putInt("user_id", 123)
editor.apply() // Или editor.commit()
apply()
— записывает данные асинхронно.commit()
— записывает данные синхронно, но может замедлять работу.
3. Чтение данных:
xxxxxxxxxx
val username = sharedPreferences.getString("username", "defaultName")
val userId = sharedPreferences.getInt("user_id", -1)
4. Удаление данных:
xxxxxxxxxx
editor.remove("username").apply()
5. Очистка всех данных:
xxxxxxxxxx
editor.clear().apply()
Когда использовать SharedPreferences
Для хранения:
- Настроек пользователя (например, темная/светлая тема).
- Флагов состояния (например, «показано ли приветственное сообщение»).
- Токенов авторизации (но не рекомендуется из-за слабой безопасности).
Не использовать для:
- Хранения больших данных (используйте Room, SQLite, DataStore).
- Конфиденциальных данных (используйте EncryptedSharedPreferences или хранилище Keystore).
Альтернатива SharedPreferences
Google рекомендует использовать Jetpack DataStore, который основан на ProtoBuf или Preferences, так как он более современный, асинхронный и не блокирует основной поток.
-
Новости4 недели назад
Видео и подкасты о мобильной разработке 2025.11
-
Новости1 неделя назад
Видео и подкасты о мобильной разработке 2025.14
-
Видео и подкасты для разработчиков3 недели назад
Javascript для бэкенда – отличная идея: Node.js, NPM, Typescript
-
Новости3 недели назад
Видео и подкасты о мобильной разработке 2025.12