Flutter数据持久化与通知插件persist_notifier的使用
Flutter数据持久化与通知插件persist_notifier的使用
PersistNotifier
封装了平台特定的持久化存储,用于简单的数据存储(在iOS和macOS上为NSUserDefaults,在Android上为SharedPreferences等)。它通过现有的ValueNotifier
方法以及定义的新方法来实现额外的功能。数据可以异步或同步地持久化到磁盘。
支持的数据类型包括int
、double
、bool
、String
和List<String>
。
关于值存储的信息,请参阅SharedPreferences文档。
使用
要使用此插件,需要将persist_notifier
作为依赖项添加到你的pubspec.yaml
文件中。
dependencies:
persist_notifier: ^x.y.z
示例
以下是展示如何使用API的小示例。
定义
// 定义为静态变量或成员变量
PersistNotifier pn = PersistNotifier("com.example.test", 0);
void example() async {
// 异步定义
var pn = PersistNotifier("com.example.test", 0);
// 同步定义
var pn = await PersistNotifier.create("com.example.test", 0);
}
读取数据
// 读取默认值或存储的值
PersistNotifier pn = await PersistNotifier.create("com.example.test", 0);
final int counter = pn.value;
// 如果底层值已更改,则强制同步存储的值。
// 这应该只发生在用相同键的不同变量更改时。
pn.resync();
写入数据
// 读取默认值或存储的值
PersistNotifier pn = await PersistNotifier.create("com.example.test", 0);
pn.value = 7; // 异步存储更新
bool success = await pn.set(7); // 同步存储更新
删除条目
// 将值重置回默认值
PersistNotifier pn = await PersistNotifier.create("com.example.test", 0);
pn.value = 7;
pn.reset();
// pn.value == 0
扩展提供的设置管理器
class SettingsManager extends PersistNotifierManager {
// 创建一个单例以方便访问
...
PersistNotifier pn = PersistNotifier("com.example.test", 0);
PersistNotifier pnBoo = PersistNotifier("com.example.boo", 7);
SettingsManager() {
add(pn);
add(pnBoo, group: "boo");
}
}
void example() {
SettingsManager manager = SettingsManager();
manager.reset(group: "boo"); // 仅重置"boo"组
manager.reset(); // 重置所有组
List<PersistNotifier> list;
list = manager.getAll(group: "boo"); // 获取"boo"组的所有条目
list = manager.getAll(); // 获取所有组合的条目
}
更多关于Flutter数据持久化与通知插件persist_notifier的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复