我的登录系统使用SharedPreferences存储有关用户的信息。登录系统的两个主要变量是:
当用户登录时,loggedin设置为1,userID设置为从DB获取的用户ID。按下注销按钮时,loggedin设置为0,userID设置为null。
情况:
现在这是一个出错的地方:如果我登录,然后从我的手机上卸载应用程序并按下android studio上的运行应用程序启动并登录到数据库中不再存在的一个非常旧的帐户;我无法弄清楚为什么会这样。
我唯一想到的是设备上存储的用户ID没有被删除,但这可能是完全错误的。有什么想法吗?
我在整个代码中添加了一些日志标记,在卸载应用程序之前,userID是正确的,当它重新安装时,它是旧的。
答案 0 :(得分:3)
Shared Preferences
始终与卸载应用一起清除。
但是由于 android-21 备份任务默认将首选项存储到云端。稍后当您卸载然后安装较新版本时。您可能会使用恢复的首选项。为避免这种情况,只需将其添加到manifest
(或至少要显示调试版)。 -
<application ...
android:allowBackup="false">
...
</application>
阅读本文:http://developer.android.com/guide/topics/data/backup.html
重要的是要提到备份过程是blackbox ..你不知道它什么时候开始,以及检查之间的时间......所以最好开发以禁用它。