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