Sobes.tech
Junior

Ի՞նչ է SharedPreferences-ը և ինչպես օգտագործել այն։

sobes.tech AI

Պատասխան AI-ից

SharedPreferences-ը պարզ մեխանիզմ է փոքր տվյալների զտման համար բանալի-արժեք զույգերով։ Իդեալական է օգտագործողի կարգավորումները կամ փոքր նշանների պահպանման համար։

Օգտագործում:

  1. Ավելացնել կախվածություն: pubspec.yaml ֆայլում ավելացրեք.

    dependencies:
      flutter:
        sdk: flutter
      shared_preferences: ^2.2.0 # Օգտագործեք արդիական տարբերակը
    

    և գործարկեք flutter pub get:

  2. Արտահանել:

    import 'package:shared_preferences/shared_preferences.dart';
    
  3. Ստանալ օրինակ:

    // Ասինխրոն գործողություն
    SharedPreferences prefs = await SharedPreferences.getInstance();
    
  4. Տվյալների գրառում:

    // Տողային արժեք գրանցել
    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>, որը ցույց է տալիս գործողության հաջողությունը:

  5. Կարդալ տվյալները:

    // Տողային արժեք կարդալ
    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');
    
  6. Ջնջել տվյալները:

    // Ջնջել ըստ բանալիի
    prefs.remove('username'); // Վերադարձնում է Future<bool>
    // Ջնջել բոլոր տվյալները
    prefs.clear(); // Վերադարձնում է Future<bool>
    

Համակարգային սահմանափակումներ:

  • Չի հարմար մեծ տվյալների կամ բարդ կառուցվածքների պահպանման համար:
  • Տվյալները պահվում են բացահայտ ձևով (նույնիսկ հավելվածի մակարդակով), չի հարմար զգայուն տվյալների համար:
  • աշխատում է հիմնական տիպերի հետ։ Օբյեկտների համար անհրաժեշտ է սերիալիզացիա/դեսերիալիզացիա (օրինակ՝ json-ի միջոցով):