问题描述
发布模式下的共享首选项有时会显示旧值, 在我的测试过程中,它存储了该值,并且可以获取我存储的新值,只是为了确保但在关闭应用程序并再次打开它之后,有时它会显示旧值,这是我在新值之前存储的。
void setToken(String userToken) async {
var sharedPreferences = await shared;
sharedPreferences.setString("$_token",userToken);
print("token is: " +sharedPreferences.getString("$_token").toString());
}
Future getToken() async {
var sharedPreferences = await shared;
sharedPreferences.reload();
String value = sharedPreferences.getString("$_token");
print("your token: $value");
return value;
}
结果信息:
在第一家商店(获得第一个令牌):
token is: eyJhbG.....Ai-A
第二个令牌存储:
token is: eyJhbG....oKk
重新打开应用程序后,我得到了第一个令牌
your token: eyJhbG.....Ai-A
有人遇到过同样的问题吗?
解决方法
请复制粘贴以下代码:
void setToken(String userToken) async {
var sharedPreferences = await shared;
sharedPreferences.setString("my_token",userToken);
print("token is: " +sharedPreferences.getString("my_token").toString());
}
Future getToken() async {
var sharedPreferences = await shared;
sharedPreferences.reload();
String value = sharedPreferences.getString("my_token");
print("your token: $value");
return value;
}
,
请将此解决方案粘贴到您的代码中
void setToken(String userToken) async {
var sharedPreferences = await shared;
sharedPreferences.setString("$_token",userToken);
print("token is: " +sharedPreferences.getString("$_token").toString());
}
Future getToken() async {
var sharedPreferences = await shared;
String value = sharedPreferences.getString("$_token");
print("your token: $value");
return value;
}
,
试试这个解决方案,这可能会奏效:
void setToken(String userToken) async {
SharedPreferences sharedPreferences = await SharedPreferences.getInstance();
sharedPreferences.setString("my_token",userToken);
print("token is: " +sharedPreferences.getString("my_token").toString());
}
Future getToken() async {
SharedPreferences sharedPreferences = await SharedPreferences.getInstance();
sharedPreferences.reload();
String value = sharedPreferences.getString("my_token");
print("your token: $value");
return value;
}
在运行应用程序之前尝试 flutter clean
。