Flutter本地存储shared_preferences

shared_preferences

shared_preferences 是 Flutter 提供的 key-value 存储插件,能够将数据持久化到磁盘中。在android 上封装的是SharedPreferences,在 iOS 上封装的是 NSUserDefault。

使用

安装

 shared_preferences: ^0.5.4+3

要使用 shared_preferences 需要首先拿到 instance,提供了 getInstance() 方法:

import 'package:shared_preferences/shared_preferences.dart';
SharedPreferences prefs = await SharedPreferences.getInstance();

存储
SharedPreferences 提供了 setInt、setBool、setString 和 setStringList 等方法,用来设置特定类型的数据。

 static set(String key, value) async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    if (value is String) {
      prefs.setString(key, value);
    } else if (value is num) {
      prefs.setInt(key, value);
    } else if (value is double) {
      prefs.setDouble(key, value);
    } else if (value is bool) {
      prefs.setBool(key, value);
    } else if (value is List) {
      prefs.setStringList(key, value.cast<String>());
    }
  }

获取
SharedPreferences 提供了get 方法,除此之外,和 set 类似,还提供了getString / getInt / getDouble 等方法。

  /// 返回数据data -> replace -> null
  static get(String key, [dynamic replace]) async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    var data = prefs.get(key);
    return data ?? replace ?? null;
  }

移除

 static remove(String key) async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    prefs.remove(key);
  }

  static removeAll() async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    prefs.clear();
  }

辅助方法
getKeys、containsKey,用于获取所有的 key 或者判断是否存在 key。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容