SharedPreferences轻量级存储类,以键值对的形式保存设置,属性和数据。在Flutter平台我们使⽤ shared_preferences库来同时⽀持Android 和iOS。

官方网站:https://pub.dev/packages/shared_preferences

使⽤

在 pubspec.yaml 中添加依赖

shared_preferences: ^2.2.0

案例完成一个计算器,要求初始化可以读取上次关闭软件前的数据

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

class BasicPage extends StatefulWidget {
  const BasicPage({Key? key}) : super(key: key);

  @override
  State<BasicPage> createState() => _BasicPageState();
}

class _BasicPageState extends State<BasicPage> {
  **late SharedPreferences prefs;**

  int _counter = 0;

  @override
  void initState() {
    super.initState();
    _loadCounter();
  }

	**// 懒加载数据 核心代码
  void _loadCounter() async {
    prefs = await SharedPreferences.getInstance();
    setState(() {
      _counter = prefs.getInt("counter") ?? 0;
    });
  }**

  @override
  Widget build(BuildContext context) {
    return SafeArea(
      child: Scaffold(
        body: Center(
          child: Column(
            children: [
              SizedBox(height: 100),
              ElevatedButton(
                onPressed: _add,
                child: Text("Add"),
              ),
              Text("$_counter", style: TextStyle(fontSize: 40),),
            ],
          ),
        ),
      ),
    );
  }

	**// 保存到手机本地里面去
  void _add() async {
    setState(() {
      _counter += 1;
    });
    await prefs.setInt("counter", _counter);
  }**
}