Flutter SpUtil 坑记:刚启动应用时无法获取之前存储的值

一、问题说明

一般在 App 启动页面会倒计时两三秒的时间后执行相应的导航操作(跳转主页面或用户登陆页面),执行导航的依据是什么呢,是本地存储的 token,如果有 token 且未过期的话就跳转 home,否则跳转登陆。我的本地存储用的是 flustars 插件的 SpUtil,前期只用到存储 token、获取 token、跳转导航等功能时都非常正常。

问题出在之后添加的一个功能需要在倒计时之前判断用户是否同意过 App 协议,而这个协议同意与否的状态是存储于本地的,与前者的区别在于倒计时前的判断还是一进入页面时的判断。倒计时后判断没有任何问题,如果是倒计时前判断的话,不仅无法获取本地存储的状态,还会把这个状态清除掉。当时也是比较纳闷,为什么 token 可以获取到,而这个状态就无法获取得到呢 ? 经过一系列排查发现存在这个问题。

二、解决方案

感觉可能是因为这个类需要异步初始化,导致前期未初始化前不可调用其 API,必须倒计时一段时间后再调用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值