我正在使用共享偏好编写登录功能。我使用SharedPreferences.Editor :: commit()来存储用户名和密码;从shared_prefs读取它以检查登录。登录后,我cd到/data/data/com.< my_package&gt; / shared_prefs /并删除“shared_prefs”文件夹。问题是应用程序屏幕仍处于登录状态。 我尝试返回并重新启动应用程序,但它仍处于登录状态。手动删除“shared_prefs”是否完全清除了prefs?为什么我的应用仍处于登录状态?
答案 0 :(得分:2)
您不应该删除首选项文件夹。如果执行此操作,共享首选项的行为将无法记录。 (即使您退出上一个活动,该过程仍可能处于活动状态,之前读取的首选项仍在内存中。)
如果要从共享首选项中删除特定值,请使用SharedPreferences.Editor.remove(String)
。如果要清除所有值,请使用SharedPreferences.Editor.clear()
。在任何一种情况下,commit()
您的更改都会生效。
如果要将程序重置为初始状态(就好像它从未运行过),请转到设置 - &gt;管理应用程序,打开应用程序,停止它(如果它正在运行),然后清除所有数据。