猿问

注销时删除所有 SharedPreferences

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

}


神不在的星期二
浏览 218回答 3
3回答

牧羊人nacy

我建议你使用像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

使用提交SharedPreferences sharedPreferences =  getSharedPreferences("YourKey", MODE_PRIVATE);sharedPreferences.edit().clear().commit();Intent i = new Intent(this, LoginActivity.class);startActivity(i);finish();
随时随地看视频慕课网APP

相关分类

Java
我要回答