共享偏好在释放模式下显示旧值



发布模式下共享的pref值有时会显示旧值,在我的测试过程中,它存储了值,可以获得我存储的新值,只是为了确保关闭应用程序并再次打开应用程序后,有时它显示的是旧值,这是我在新值之前存储的。

下面是我的代码示例:存储和获取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;
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

最新更新