应用重启后SharedPreferences值被清空问题技术咨询
问题原因及解决办法
问题原因
你代码里的SharedPreferences.setMockInitialValues({})是测试专用API,作用是为SharedPreferences设置模拟的初始空值。如果在正式运行的代码中保留这个调用,每次应用启动执行到这里时,会直接重置SharedPreferences的存储内容为空,导致之前保存的mobileNumber、isAuthenticated等数据被清空,重启后自然读不到之前的值。
解决办法
直接移除SharedPreferences.setMockInitialValues({})这行代码即可,正式环境下不需要用这个测试方法。修改后的代码如下:
SharedPreferences prefs = await SharedPreferences.getInstance(); prefs.setString("mobileNumber", mobileController.text); prefs.setString('isAuthenticated', 'true'); var login = prefs.getString("isAuthenticated");
这样修改后,SharedPreferences会正常读写设备上的持久化存储,重启应用后之前保存的值也不会丢失。
内容的提问来源于stack exchange,提问作者pranali kumbhar
相关产品推荐
相关产品推荐

