Sobes.tech
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, Android SharedPreferences).
  • Nepieciešama await piekļuvei: SharedPreferences instance iegūšanai un lasīšanas/rakstīšanas operācijām nepieciešams izmantot await.

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