Junior
Kāda ir SharedPreferences izmantošanas īpatnība Flutter?
sobes.tech AI
Atbilde no AI
SharedPreferences nodrošina vienkāršu API mazāku datu apjomu glabāšanai (primitiivi tipi: int, double, bool, String, List<String>) kā atslēgas-vertības pāri. Dati tiek glabāti asinhroni. Tas ir piemērots lietotāja iestatījumu, stāvokļa marķieru un citu nenozīmīgu informāciju glabāšanai.
Īpatnības:
- Vienkārša lietošana: API ir viegla un intuitīva.
- Asinhronas operācijas: Visas lasīšanas un rakstīšanas operācijas ir asinhronas, kas novērš UI plūsmas bloķēšanu.
- Ierobežots tipu klāsts: Atbalsta tikai primitivus tipus un virkņu sarakstus.
- Nav piemērots lieliem datu apjomiem vai sarežģītām struktūrām: Neefektīvs lielu datu struktūru vai daudz ierakstu glabāšanai.
- Platformas atkarība: Realizēts uz nativajiem glabāšanas mehānismiem (piemēram, iOS
NSUserDefaults, AndroidSharedPreferences). - Nepieciešama
awaitpiekļuvei:SharedPreferencesinstance iegūšanai un lasīšanas/rakstīšanas operācijām nepieciešams izmantotawait.
Piemērs lietošanai:
// Iegūt `SharedPreferences` instance
final prefs = await SharedPreferences.getInstance();
// Datu ierakstīšana
await prefs.setInt('counter', 10);
await prefs.setBool('isDarkMode', true);
await prefs.setString('username', 'FlutterDev');
await prefs.setStringList('items', ['apple', 'banana']);
// Datu lasīšana
final counter = prefs.getInt('counter') ?? 0; // Ar `??` izmanto noklusējuma vērtību
final isDarkMode = prefs.getBool('isDarkMode') ?? false;
final username = prefs.getString('username');
final items = prefs.getStringList('items') ?? [];
// Datu dzēšana
await prefs.remove('username');
await prefs.clear(); // Dzēš visus datus