我希望我的應用程序在用戶注銷時刪除所有首選項并LoginActivity在退出主屏幕后顯示。我一直在關注這里的建議。以我的方式,我只得到默認的首選項。如果有幫助,我的應用程序的工作流程是這樣的:登錄 -> 將用戶詳細信息保存到首選項 -> 開始MainActivity-> 注銷 -> 清除首選項 -> 開始LoginActivity問題是使用默認首選項引起的嗎?還是因為我調用了finish()?我試過apply()和commit()。都沒有工作。當我嘗試在LoginActivity. 如何清除我的偏好?private void logout(){ // clear preferences SharedPreferences sharedPreferences = this.getPreferences(Context.MODE_PRIVATE); sharedPreferences.edit().clear().apply(); Intent i = new Intent(this, LoginActivity.class); startActivity(i); // call LoginActivity and finish this one. finish();}
3 回答

牧羊人nacy
TA貢獻1862條經驗 獲得超7個贊
我建議你使用像Easy Prefs這樣的庫來處理 Sharedprefrences。它有一個方法,Prefs.clear()所以基本上這將清除所有共享的首選項。這將使您很容易處理 sharedPrefs。
或者,您可以通過以下功能清除 sharedpref:
public void clearPrefs(){
SharedPreferences mySPrefs = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = mySPrefs.edit();
editor.clear();
editor.apply();
}

GCT1015
TA貢獻1827條經驗 獲得超4個贊
使用提交
SharedPreferences sharedPreferences = getSharedPreferences("YourKey", MODE_PRIVATE);
sharedPreferences.edit().clear().commit();
Intent i = new Intent(this, LoginActivity.class);
startActivity(i);
finish();
添加回答
舉報
0/150
提交
取消