Flutter shared_preferences库的使用

1,420 阅读3分钟

介绍

SharedPreferences是我们在安卓开发中向程序内存储简易键值对的类,在flutter中我们在flutter中要使用类似功能的话需要第三方组件来完成,这个组件就是shared_preferences。shared_preferences库封装了特定平台的持久化存储来存储简单的持久化数据。比如在IOS和MacOs上封装的NSUserDefaults,在在安卓上封装的SharedPreferences等。利用shared_preferences我们可以异步的把基本类型的数据写入到磁盘中。

shared_preferences的用法

1、添加依赖库

dependencies:
  shared_preferences: ^2.0.5

依赖库添加后要执行Pub Get使其生效

2、在使用时导入该库

import 'package:shared_preferences/shared_preferences.dart';

3、具体使用

  1. 获取SharedPreferences对象。
SharedPreferences.getInstance().then((shared) => {
});

此时,我们就可以在大括号内写我们的代码啦。

  1. 向sharedPreferences中写入数据。
shared.setInt(String key,int value)
等等......

其中一系列set方法,帮助我们向sharePreferences中插入数据,后面会有表格列举。 3. 从sharedPreferences删除数据

删除方法很简单只是执行remove方法传入当时的key值就可以啦。

shared.remove(String key)
  1. 从sharedPreferences中修改数据

修改数据的方法和增加数据相同,传入key和修改后的值就行了,它会自动覆盖的

  1. 从sharedPreferences查询数据
shared.getInt(String key)
等等......  

其中一系列get方法,帮助我们从sharePreferences中获取数据,后面会有表格列举。

  1. 查询是否已经存有此key值的数据
shared.containsKey(String key)

4.常见方法表

  • 增加类
方法名返回值说明
setBool(String key, bool value)Future< bool>后台执行,向share中存储一个bool类型的值
setInt(String key, int value)Future< bool>后台执行,向share中存储一个int类型的值
setDouble(String key, double value)Future< bool>后台执行,向share中存储一个Double类型的值
setString(String key, String value)Future< bool>后台执行,向share中存储一个String类型的值
setStringList(String key, List< String> value)Future< bool>后台执行,向share中存储一个List< String>?的值
  • 查询类
方法名返回值说明
getKeys()Set< String>调用此方法,返回所有持久化数据的key值列表
get(String key)Object?返回此指定key,关联存储的任意类型值
getBool(String key)bool?返回一个bool类型的值,如果不是bool类型则会抛出异常
getInt(String key)int?返回一个int类型的值,如果不是int类型则会抛出异常
getDouble(String key)double?读取一个double类型的值如果不是double类型则会抛出异常
getString(String key)String?读取一个String类型的值,如果返回的不是String类型,则抛出异常
getStringList(String key)List< String>?读取一个List< String>?的值,如果返回的不是此类型则抛出异常
  • 功能类
方法名返回值说明
remove(String key)Future< bool>删除指定key的持久化数据
containsKey(String key)bool如果持久化数据中存在给定的key则返回true
commit()Future< bool>总是返回true,废弃方法,不建议使用
clear()Future< bool>移除所有的keys和value,清空share
reload()Future< void>重新加载缓存的share

好啦,flutter中的shared_preferences库使用起来就是这么简单,它支持安卓,IOS,MAC-OS,LINUX,WEB,WINDOWS等六个平台。功能还是比较强大的。大家赶紧用起来吧~~!