Sobes.tech
Junior

Mis on SharedPreferences kasutamise eripära Flutteris?

sobes.tech AI

Vastus AI-lt

SharedPreferences pakub lihtsat API väikeste andmemahtude salvestamiseks (põhiliigid: int, double, bool, String, List<String>) võtme-väärtuse paaridena. Andmed salvestatakse asünkroonselt. Sobib kasutaja seadete, olekumerkide ja muu mitte-kriitilise teabe salvestamiseks.

Omadused:

  • Lihtne kasutada: API on kerge ja intuitiivne.
  • Asünkroonilised toimingud: Kõik lugemis- ja kirjutamistoimingud on asünkroonsed, mis takistab UI voolu blokeerimist.
  • Piiratud tüüpide valik: Toetab ainult primitiivseid tüüpe ja stringide nimekirju.
  • Ei sobi suurte andmekogumite või keerukate struktuuride jaoks: Mitte tõhus suurte andmestruktuuride või paljude kirjetega.
  • Platvormist sõltuv: Rakendatud natiivsete salvestusmehhanismide põhjal (näiteks iOS NSUserDefaults, Android SharedPreferences).
  • Ei ole turvaline konfidentsiaalse teabe salvestamiseks: Andmed salvestatakse avatud kujul, ei sobi paroolide või muu tundliku teabe jaoks.
  • Juurdepääs nõuab await: SharedPreferences eksemplari saamine ja lugemis-/kirjutusoperatsioonid nõuavad await kasutamist.

Näide kasutamisest:

// Saada `SharedPreferences` eksemplar
final prefs = await SharedPreferences.getInstance();

// Andmete salvestamine
await prefs.setInt('counter', 10);
await prefs.setBool('isDarkMode', true);
await prefs.setString('username', 'FlutterDev');
await prefs.setStringList('items', ['apple', 'banana']);

// Andmete lugemine
final counter = prefs.getInt('counter') ?? 0; // Kasutades `??` vaikimisi väärtuse jaoks
final isDarkMode = prefs.getBool('isDarkMode') ?? false;
final username = prefs.getString('username');
final items = prefs.getStringList('items') ?? [];

// Andmete kustutamine
await prefs.remove('username');
await prefs.clear(); // Kustutab kõik andmed