文章目录
- 概念介绍
- 实现方法
- 示例代码
我们在上一章回中介绍了"如何自定义评分条"相关的内容,本章回中将介绍 如何实现本地存储,闲话休提,让我们一起Talk Flutter吧。
概念介绍
Flutter是一套跨平台的UI框架,它不像原生SDK一样提供本地存储功能,因此,我们在本章回将介绍如何实现本地存储功能。
我们主要通过shared_preferences
包来实现本地存储功能,这里介绍的本地存储也只限于存储一些小数据,比如配置信息,而不能存储大文件。
实现方法
- 在yaml文件中导入shared_preferences包;
- 获取shared_preferences实例对象,获取时需要使用异步操作;
- 使用shared_preferences实例中的setXXX方法存储数据;
- 使用shared_preferences实例中的getXXX方法获取数据;
- 使用shared_preferences实例中的removeXXX方法删除数据;
上面方法中提到的XXX表示dart
语言中的基本类型,比如int
,String
等。setXXX方法表示setInt,setString等方法。因此shared_preferences
实例只能存储基本类型的数据。
如果大家有Android编译经验就会发现它和Android
中的SharedPreferences
十分相似。下面是示例代码,请大家参考。
示例代码
///把sharedPreference封装成一个类,相关操作封装成方法
class StorageCache {final String key_age = 'age';final String key_name = 'name';SharedPreferences? sharedPreferences;///获取SharedPreferences实例需要使用异步操作void init() async {sharedPreferences = await SharedPreferences.getInstance().whenComplete(() => print('get sharedPreference success') );}StorageCache() {init();}///写数据操作需要封装成异步方法void sharedPrefWriteData () async{int age = 3;String name = "Talk8";await sharedPreferences?.setInt(key_age, age).whenComplete(() => print('write success'));await sharedPreferences?.setString(key_name, name).whenComplete(() => print('write success'));}void sharedPrefReadData() {int? age = sharedPreferences?.getInt(key_age);String? name = sharedPreferences?.getString(key_name);debugPrint("age: $age, name: $name");}///删除数据操作需要封装成异步方法void sharedPrefRemoveKey() async {await sharedPreferences?.remove(key_age).whenComplete(() => print('remove success'));await sharedPreferences?.remove(key_name).whenComplete(() => print('remove success'));}
}
在上面的代码中,我们把shared_preference
包封装成一个类,该包提供的相关操作封装成类的方法,这种封装有助于在其它代码中使用相关方法实现本地存储功能。
看官们,关于"如何实现本地存储"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!