首页 文章

手动清除共享偏好

提问于
浏览
0

我正在使用共享偏好编写登录功能 . 我使用SharedPreferences.Editor :: commit()来存储用户名和密码;从shared_prefs读取它以检查登录 . 登录后,我cd到/ data / data / com . <my_package> / shared_prefs /并删除"shared_prefs"文件夹 . 问题是应用程序屏幕仍处于登录状态 . I tried to Back and restart the application but it's still in login status. Does removing the "shared_prefs" by hand clear the prefs completely? 为什么我的应用仍处于登录状态?

1 回答

  • 2

    您不应该删除首选项文件夹 . 如果执行此操作,共享首选项的行为将无法记录 . (即使退出上一个活动,该过程仍可能处于活动状态,之前读取的首选项仍在内存中 . )

    如果要从共享首选项中删除特定值,请使用 SharedPreferences.Editor.remove(String) . 如果要清除所有值,请使用 SharedPreferences.Editor.clear() . 在任何一种情况下,然后 commit() 您的更改才能生效 .

    如果要将程序重置为初始状态(就好像它从未运行过),请转到设置 - >管理应用程序,打开应用程序,停止它(如果它正在运行),然后清除所有数据 .

相关问题