Flutter:shared_preferences数据存储,数据持久化,token等信息存储

发布于:2024-11-27 ⋅ 阅读:(152) ⋅ 点赞:(0)

官方示例:简单调用

// 初始化示例
final SharedPreferences prefs = await SharedPreferences.getInstance();
// 存int
await prefs.setInt('counter', 10);
// 存bool
await prefs.setBool('repeat', true);
// 存double
await prefs.setDouble('decimal', 1.5);
// 存string
await prefs.setString('action', 'Start');
// 存list
await prefs.setStringList('items', <String>['Earth', 'Moon', 'Sun']);

// 取值:
final int? counter = prefs.getInt('counter');
final bool? repeat = prefs.getBool('repeat');
final double? decimal = prefs.getDouble('decimal');
final String? action = prefs.getString('action');
final List<String>? items = prefs.getStringList('items');

// 删除某个key
prefs.remove('counter')

代码封装

import 'package:shared_preferences/shared_preferences.dart';

/// kv离线存储
class Storage {
  // 单例写法
  static final Storage _instance = Storage._internal();
  factory Storage() => _instance;
  late final SharedPreferences _prefs;

  Storage._internal();

  Future<void> init() async {
    _prefs = await SharedPreferences.getInstance();
  }

  Future<bool> setString(String key, String value) async {
    return await _prefs.setString(key, value);
  }

  Future<bool> setBool(String key, bool value) async {
    return await _prefs.setBool(key, value);
  }

  Future<bool> setList(String key, List<String> value) async {
    return await _prefs.setStringList(key, value);
  }

  String getString(String key) {
    return _prefs.getString(key) ?? '';
  }

  bool getBool(String key) {
    return _prefs.getBool(key) ?? false;
  }

  List<String> getList(String key) {
    return _prefs.getStringList(key) ?? [];
  }

  Future<bool> remove(String key) async {
    return await _prefs.remove(key);
  }
}

页面调用


网站公告

今日签到

点亮在社区的每一天
去签到