我希望我的应用程序在用户注销时删除所有首选项并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
提交
取消