前言
应用开发时会有很多的数据存储需求,这个时候就需要用到持久化存储技术,与iOS、安卓一样,Flutter中也有很多种持久化存储方式,比如key-value存储、文件存储、数据库存储等,但其实质都是通过平台对应的模块来实现的,本篇我们将带大家一起了解key-value存储的应用。
key-value存储介绍
key-value存储主要是平台提供特定的api来供我们操作,其本质依然是将数据存储到特定文件中,只不过这些工作都由平台帮我们做,比如iOS平台中的NSUserDefaults、安卓平台的SharedPreferences等等。Flutter中可以使用shared_preferences插件来实现key-value存储,主要存储数据类型包括bool,int,double,String,List等等。
key-value存储使用
引入插件
在pubspec.yaml文件中添加shared_preferences插件,如下:
dependencies:
flutter:
sdk: flutter
#shared_preferences插件
shared_preferences: 0.4.3
然后命令行执行flutter packages get
即可将插件下载到本地
使用方法
插件引入到项目后,在使用的dart文件中导入shared_preferences.dart文件
import 'package:shared_preferences/shared_preferences.dart';
具体使用如下,获取SharedPreferences的单例方法是一个异步方法,所以在使用时需要注意使用await获取其真实对象,如下::
Future<SharedPreferences> _prefs = SharedPreferences.getInstance();
//保存数据
void saveMethodName() async {
SharedPreferences prefs = await _prefs;
prefs.setString("strKey", "strValue");
prefs.setInt("intKey", "intValue");
.
.
}
//获取数据
void initFromCache() async {
SharedPreferences prefs = await _prefs;
String strValue = prefs.getString("strKey");
int intValue = prefs.getInt("intKey");
.
.
}
举个栗子
import 'package:shared_preferences/shared_preferences.dart';
class TestPersistent extends StatefulWidget {
final String title;
TestPersistent({Key key, this.title}):super(key: key);
@override
State<StatefulWidget> createState() {
// TODO: implement createState