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。
网友评论