第九十八回 如何实现本地存储

文章目录

  • 概念介绍
  • 实现方法
  • 示例代码

我们在上一章回中介绍了"如何自定义评分条"相关的内容,本章回中将介绍 如何实现本地存储,闲话休提,让我们一起Talk Flutter吧。

概念介绍

Flutter是一套跨平台的UI框架,它不像原生SDK一样提供本地存储功能,因此,我们在本章回将介绍如何实现本地存储功能。

我们主要通过shared_preferences包来实现本地存储功能,这里介绍的本地存储也只限于存储一些小数据,比如配置信息,而不能存储大文件。

实现方法

  1. 在yaml文件中导入shared_preferences包;
  2. 获取shared_preferences实例对象,获取时需要使用异步操作;
  3. 使用shared_preferences实例中的setXXX方法存储数据;
  4. 使用shared_preferences实例中的getXXX方法获取数据;
  5. 使用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包封装成一个类,该包提供的相关操作封装成类的方法,这种封装有助于在其它代码中使用相关方法实现本地存储功能。

看官们,关于"如何实现本地存储"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

你可能感兴趣的:(一起Talk,Flutter吧,flutter本地存储,flutter本地缓冲)