likes
comments
collection
share

Flutter开发者必读:sp_util - SharedPreferences的终极解决方案

作者站长头像
站长
· 阅读数 42

简介

sp_util 是一个在 Flutter 社区中广泛使用的轻量级、无依赖的 SharedPreferences 封装库。

SharedPreferencesAndroidiOS 平台上用于存储少量数据的简单键值存储系统。

典型场景

sp_util 库在 Flutter 应用开发中的典型使用场景包括但不限于以下几点:

用户偏好设置:存储用户的主题选择、语言偏好、字体大小等个性化设置。

登录状态保持:在用户登录后,将用户的身份验证信息(如 token)存储在 SharedPreferences 中,以便在应用重新启动时保持登录状态。

应用配置:存储应用的配置信息,如 API 端点、版本号、调试模式开关等。

临时数据存储:对于不需要持久存储在数据库中的数据,如临时计算结果、临时缓存的数据等,可以使用 SharedPreferences 进行快速存储。

首屏加载优化:在应用启动时,从 SharedPreferences 中读取一些关键数据,以加快首屏加载速度。

用户行为跟踪:记录用户的某些行为或状态,例如是否同意隐私政策、是否已经完成了新手引导等。

广告跟踪:存储广告展示次数、点击次数等,以便进行广告效果分析。

离线数据同步:在没有网络连接的情况下,将需要同步的数据临时存储在 SharedPreferences 中,待网络恢复后再进行同步。

应用状态恢复:在应用被系统关闭或崩溃后重新启动时,从 SharedPreferences 中恢复之前的状态,如页面跳转、表单填写等。

多设备同步:在多设备使用同一账号的情况下,通过 SharedPreferences 存储一些同步信息,以便在不同设备间同步状态。

使用 sp_util 可以简化这些场景下的数据存储和读取操作,提高开发效率和应用性能。

使用步骤

添加依赖:

dependencies:
  flutter:
    sdk: flutter
  sp_util: ^版本号

然后运行 flutter pub get 来获取依赖

使用储存库:

import 'package:sp_util/sp_util.dart';

void saveData() {
  SpUtil.putString('username', 'mimo');
  SpUtil.putInt('age', 25);
  SpUtil.putDouble('height', 1.75);
  SpUtil.putBool('isVip', true);
}


String username = SpUtil.getString('username');
int age = SpUtil.getInt('age');
double height = SpUtil.getDouble('height');
bool isVip = SpUtil.getBool('isVip');

示例

再进行打印

print('=============================');
print('存入的用户名字:${username}');
print('存入的用户年龄:${age}');
print('存入的用户身高:${height}');
print('存入的用户isVip:${isVip}');
print('=============================');

就会得到以下结果

Flutter开发者必读:sp_util - SharedPreferences的终极解决方案

删除数据

SpUtil.remove('username');

// 清除所有数据
SpUtil.clear();

监听数据变化

SpUtil.putString('username', 'mimo2');
SpUtil.listen('username', (dynamic newValue, dynamic oldValue) {
  print('=============================');
  print('存入的用户的新名字:${newValue}');
  print('=============================');
  // 当 someKey 的值变化时,执行这里的代码
});

Flutter开发者必读:sp_util - SharedPreferences的终极解决方案

总结

以上就是sp_util 的基本使用方法。

sp_util 库的使用非常直观,它提供了基本的数据类型存储和监听功能,使得开发者可以轻松地管理和使用应用中的偏好设置。

– 欢迎点赞、关注、转发、收藏【我码玄黄】,gonghao同名

转载自:https://juejin.cn/post/7389913889345142799
评论
请登录