共享首选项在发布模式下显示旧值

问题描述

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

这是我的代码示例: 存储和获取价值:

 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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...