对不起,如果已经提出这个问题,我已经在类似的问题上找了好几个小时,但似乎没什么用。
我在登录时保存SharedPreferences
,如下所示:
SharedPreferences prefs = context.getSharedPreferences(LOGIN_CREDENTIALS_PREFS, Context.MODE_PRIVATE);
final SharedPreferences.Editor editor = prefs.edit();
editor.putString(PREFS_LOGIN_EMAIL_KEY, email);
editor.putString(PREFS_LOGIN_TOKEN_KEY, token);
editor.apply(); // have also tried .commit()
现在当我重新打开应用程序时,我会检查SharedPreferences
中是否存在这样的字符串:
SharedPreferences sharedPrefs = context.getSharedPreferences(LOGIN_CREDENTIALS_PREFS, Context.MODE_PRIVATE);
String token = sharedPrefs.getString(PREFS_LOGIN_TOKEN_KEY, null);
String email = sharedPrefs.getString(PREFS_LOGIN_EMAIL_KEY, null);
在模拟器中,我每次都会收到相同的令牌和电子邮件。即使我重新安装应用程序。但在真实设备上,每次重新打开应用时,token
和email
都是null
。
如果我这样做:
sharedPrefs.getAll()
我得到{}
(空字典,哈希地图,无论你想叫什么)
是否存在使设备不能保留prefs的设置或权限?