App关闭再次启动後,需要保存的资料可以先保存在shared_preference
Android 也叫Shared preferences, iOS是UserDefault
首先建立一个Class, 并使instance不会重new的singleton
在init() 里先取得instance SharedPreferences.getInstance()
假设会存accessToken 和 userName 这两个属性
import 'package:it_home/utils/static_name.dart';
import 'package:shared_preferences/shared_preferences.dart';
class UserDefault {
static UserDefault instance = UserDefault._internal();
factory UserDefault() => instance;
UserDefault._internal();
late SharedPreferences _prefs;
init() async {
_prefs = await SharedPreferences.getInstance();
}
String get accessToken => _prefs.getString(ACCESS_TOKEN) ?? "";
set accessToken(String? value) {
if (value != null) {
_prefs.setString(ACCESS_TOKEN, value);
}
}
set userName(String name) => _prefs.setString(USER_NAME, name);
String get userName => _prefs.getString(USER_NAME) ?? "";
}
开一个空的 static_name.dart 档(或者自己习惯的命名)
并将hard code的字串写在另一个档案里(避免再次用到的时候写错)
(ACCESS_TOKEN, USER_NAME)
const String ACCESS_TOKEN = 'accessToken';
const String USER_NAME = 'user_name';
接着在main.dart 里面新增
在app启动时 将SharedPreferences 先new一次
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await UserDefault().init();
runApp(MyApp());
}
最後使用时呼叫UserDefault().属性 进行读或写
@override
void onInit() {
print(UserDefault().userName);
UserDefault().userName = "it_home_user";
print(UserDefault().userName);
super.onInit();
}
下一篇将为大家介绍 image_picker
<<: [Day 5] 阿嬷都看得懂的 HTML 标签怎麽写
>>: 从零开始的8-bit迷宫探险【Level 12】把迷宫涂上喜欢的颜色
进入十月~我开始临时抱佛脚 除了维持写文以来的努力喝水和少量运动 我也开始去做一些脸部保养课程~ B...
对于 Powershell 脚本的参数,我们可以通过一些属性来限制参数。 今天我们就来看看,怎么通过...
今天终於要进入测试API的阶段啦~~~ 不过在进入测试阶段之前,还是要来介绍一下我们的工具要怎麽使用...
更新 我把从第一天到现在每天的 Home 目录都放上 GitHub 了,README.md 里面有...
来到了第二弹,我们今天会有三个步骤: 建立EC2跟DB的机器,以及设定EC2专用的IAM Role。...