Sobes.tech
Junior

Mis on SharedPreferences ja kuidas seda kasutada?

sobes.tech AI

Vastus AI-lt

SharedPreferences on lihtne mehhanism väikeste andmete salvestamiseks võtme-väärtuse paarides. Ideaalne kasutaja seadete või väikeste lipukeste salvestamiseks.

Kasutamine:

  1. Lisada sõltuvus: lisage faili pubspec.yaml:

    dependencies:
      flutter:
        sdk: flutter
      shared_preferences: ^2.2.0 # Kasutage kehtivat versiooni
    

    ja käivitage flutter pub get.

  2. Import:

    import 'package:shared_preferences/shared_preferences.dart';
    
  3. Näide saamine:

    // Asünkroonne operatsioon
    SharedPreferences prefs = await SharedPreferences.getInstance();
    
  4. Andmete kirjutamine:

    // Stringi kirjutamine
    prefs.setString('username', 'Alice');
    // Arvu (int)
    prefs.setInt('age', 30);
    // Arvu (double)
    prefs.setDouble('salary', 50000.50);
    // Boolean väärtuse kirjutamine
    prefs.setBool('darkMode', true);
    // Stringide nimekiri
    prefs.setStringList('items', ['item1', 'item2']);
    

    Kõik kirjutamise meetodid tagastavad Future<bool>, mis näitab operatsiooni edukust.

  5. Andmete lugemine:

    // Stringi lugemine
    String? username = prefs.getString('username'); // Tagastab null, kui võti puudub
    // Arvu (int)
    int? age = prefs.getInt('age');
    // Arvu (double)
    double? salary = prefs.getDouble('salary');
    // Boolean väärtuse lugemine
    bool? darkMode = prefs.getBool('darkMode');
    // Stringide nimekirja lugemine
    List<String>? items = prefs.getStringList('items');
    
  6. Andmete kustutamine:

    // Kustuta võti järgi
    prefs.remove('username'); // Tagastab `Future<bool>`
    // Kustuta kõik andmed
    prefs.clear(); // Tagastab `Future<bool>`
    

Piirangud:

  • Ei sobi suurte andmemahtude või keerukate struktuuride salvestamiseks.
  • Andmed salvestatakse avatud kujul (ka rakendustasandil), ei sobi tundliku teabe jaoks.
  • Töötleb põhitüüpidega. Objekte jaoks on vaja serialiseerimist/deserialiseerimist (näiteks jsoni abil).