Junior
Какво е SharedPreferences и как да го използваме?
sobes.tech AI
Отговор от 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).