zoukankan      html  css  js  c++  java
  • flutter shared_preferences数据存储

    flutter中经常也会用到数据存储,shared_preferences能够很好的解决小数据存储的问题 相当于在iOS中的NSUserDefaults,在Android原生中好像就叫SharedPreferences 关于怎么创建和初始化等一些基础的我这里就不再赘述了,有需要了解的请参考:shared_preferences 具体使用我就直接上代码了,这个是工程中一段用来存储用户登录信息的存储过程 包括保存、读取、移除等

    import 'dart:convert';
    import 'package:flutte_xms/model/usermodel.dart';
    import 'package:shared_preferences/shared_preferences.dart';
    import 'const.dart';
    
    class UserManager {
      // 工厂模式
      factory UserManager() =>_getShared();
      static UserManager get shared => _getShared();
      static UserManager _shared;
      UserManager._internal() {
        // 初始化
      }
      static UserManager _getShared() {
        if (_shared == null) {
          _shared = UserManager._internal();
        }
        return _shared;
      }
    
      UserInfo _userInfo;
    
      //用户信息
      get userInfo => _userInfo;
      //用户登陆状态
      get isLogin => (_userInfo == null) ? false : true;
    
      //获取用户数据
      Future readUserInfo() async {
        SharedPreferences pref = await SharedPreferences.getInstance();
        final jsonStr = pref.getString(DataConst.KEY_UserInfo);
        // print(jsonStr);
        if (jsonStr != null && jsonStr.length > 0) {
          Map json = jsonDecode(jsonStr);
          final model = UserInfo.fromJson(json);
          //保存model的值
          _userInfo = model;
          return model;
        }
        return null;
      }
    
      //保存用户数据
      void saveUserInfo(UserInfo data) async {
        //替换userInfo的数据
        _userInfo = data;
        //保存userInfo
        SharedPreferences pref= await SharedPreferences.getInstance();
        //将data转换成json
        var str = json.encode(data);
         pref.setString(DataConst.KEY_UserInfo, str);
      }
    
      //移除用户数据
      void removeUserInfo() async{
        //清空userInfo
        _userInfo = null;
        //移除已存数据
        SharedPreferences pref= await SharedPreferences.getInstance();
        pref.remove(DataConst.KEY_UserInfo);
      }
    }
    
  • 相关阅读:
    【设计模式
    【JavaEE】之SSM入门项目的搭建
    【Android
    【Android
    【Android
    【Android
    【Android
    【Android
    随风 随意
    优秀代码所具备的品质
  • 原文地址:https://www.cnblogs.com/qqcc1388/p/12372018.html
Copyright © 2011-2022 走看看