0
我有一个活动,我试图实现一种自动登录。在我登录活动,我有这样的:SharedPreferences值总是返回true?
sharedPref = context.getSharedPreferences("data", Context.MODE_PRIVATE);
User.setUid(sharedPref.getInt("UID", 1));
Boolean al = sharedPref.getBoolean("AUTOLOGIN", false);
...
if (al) {
Log.i("AUTOLOGIN", "Go!");
Gui.createAlert(context, context.getString(R.string.loading));
Intent i = new Intent(context, CityActivity.class);
context.startActivity(i);
}
...
loginBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
...
Ajax.AjaxListener callback = new Ajax.AjaxListener() {
int uid = Integer.parseInt(userInfo.optString("user_id", "1"));
String sid = user.optString("sid", "");
String k = json.optString("k", "");
Boolean al = autoLogin.isChecked();
SharedPreferences.Editor e = sharedPref.edit();
e.putInt("UID", uid).putBoolean("AUTOLOGIN", al).putString("SID", sid).apply();
Gui.createAlert(context, context.getString(R.string.loading));
Intent i = new Intent(context, CityActivity.class);
};
});
我只能够测试这个在模拟器上,我似乎无法得到SharedPreferences
文件内容,在Android设备监视器显示,但每应用程序加载的时间,它执行自动登录例程。即使我完全关闭了仿真器并重新启动了一切,autologin标志似乎仍然存在。我对Java/Android编程相当陌生,但来自PHP和JavaScript背景,并不难找到答案。我只是难以理解,为什么在检查时总会出现true
键。有没有与SharedPreferences
实施自动登录的例子?
我应该注意到我最初尝试使用数据库,但由于使用困难和现在需要的最少数据而废弃了这个想法。
提交sharedpref。 –
你需要卸载或清除应用程序的数据,然后只有你的喜好清除 –
如果你有一些注销的概念在你的应用程序中使用'SharedPreferences.Editor editor = sharedPreferences.edit(); editor.clear();'通过这个SharedPreferences的内容将被删除,您的自动登录将被停止。 – SachinSarawgi