Назад к вопросам
Junior
164
questionbank
Что такое SharedPreferences и как его использовать?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
SharedPreferences — это простой механизм для сохранения небольших объемов данных в парах ключ-значение. Идеально подходит для сохранения настроек пользователя или небольших флагов.
Использование:
-
Добавление зависимости: В файл
pubspec.yamlдобавляем:dependencies: flutter: sdk: flutter shared_preferences: ^2.2.0 # Используйте актуальную версиюи выполняем
flutter pub get. -
Импорт:
import 'package:shared_preferences/shared_preferences.dart'; -
Получение экземпляра:
// Асинхронная операция SharedPreferences prefs = await SharedPreferences.getInstance(); -
Запись данных:
// Запись строки prefs.setString('username', 'Alice'); // Запись числа (int) prefs.setInt('age', 30); // Запись числа (double) prefs.setDouble('salary', 50000.50); // Запись булевого значения prefs.setBool('darkMode', true); // Запись списка строк prefs.setStringList('items', ['item1', 'item2']);Все методы записи возвращают
Future<bool>, указывающий на успешность операции. -
Чтение данных:
// Чтение строки String? username = prefs.getString('username'); // Возвращает null, если ключ не найден // Чтение числа (int) int? age = prefs.getInt('age'); // Чтение числа (double) double? salary = prefs.getDouble('salary'); // Чтение булевого значения bool? darkMode = prefs.getBool('darkMode'); // Чтение списка строк List<String>? items = prefs.getStringList('items'); -
Удаление данных:
// Удаление по ключу prefs.remove('username'); // Возвращает Future<bool> // Удаление всех данных prefs.clear(); // Возвращает Future<bool>
Ограничения:
- Не подходит для хранения больших объемов данных или сложных структур.
- Данные хранятся в открытом виде (хотя и на уровне приложения), не подходит для чувствительной информации.
- Работает с базовыми типами данных. Для объектов требуется сериализация/десериализация (например, с помощью json).