Flutter之用SharedPreferences实现本地存储

我们希望在APP中的配置操作,在关闭APP重启后还能生效,我们可以使用本地存储,即SharedPreferences。

其get和save函数示例如下:

import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';

getSharedPreferences(key,type) async{
  final prefs = await SharedPreferences.getInstance();
  type = type.toString().toLowerCase();
  switch(type){
    case 'bool':
      return prefs.getBool(key) ?? false;
    case 'int':
      return prefs.getInt(key) ?? 0;
    case 'double':
      return prefs.getDouble(key) ?? 0;
    case 'string':
      return prefs.getString(key) ?? '';
  }
}

saveSharedPreferences(key,val,type) async{
  final prefs = await SharedPreferences.getInstance();
  type = type.toString().toLowerCase();
  switch(type){
    case 'bool':
      prefs.setBool(key, val);
      break;
    case 'int':
      prefs.setInt(key, val);
      break;
    case 'double':
      prefs.setDouble(key, val);
      break;
    case 'string':
      prefs.setString(key, val);
      break;
  }
}

调用方式为:

getSharedPreferences("isChangeQuizOrder","bool").then((isChangeQuizOrder){
  Global.isChangeQuizOrder = isChangeQuizOrder;
});

saveSharedPreferences('isChangeQuizOrder', value, "bool");

其中Global是全局变量,在global.dart中为

class Global{
  static bool isChangeQuizOrder = true;
  static bool isChangeOptionOrder = true;
}

 

posted @ 2021-05-05 11:35  罗毅豪  阅读(643)  评论(0编辑  收藏  举报