卸载时未清除SharedPreferences


70

好吧,这是一个奇怪的事情,我认为这是不可能的。

因此,自从我使用Nexus 5X以来,卸载应用程序时就不会擦除SharedPreferences。

我通过Android Studio安装该应用程序并进行了测试。然后,我卸载该应用程序。然后,我通过Android Studio打包应用程序,所有SharedPreferences值仍然存在。

除了卸载,我还尝试清除数据/缓存。在所有这些尝试中,SharedPreferences都是持久的。

我在Nexus 5X上使用的是现货Android 6.0。我的设备未植根。我没有使用自定义ROM。Nexus 4没有这个问题。

任何想法可能是什么原因造成的?


您可能需要先设置值,然后再清除它们。在这种情况下,您可能需要上传代码,以便我们找出您的应用有什么问题。
0014

3
我的猜测是您没有选择退出应用程序中的自动备份,而是将设备设置为自动将其数据备份到Google。这些数据将在您下次安装应用时自动恢复。
CommonsWare,

Answers:


138

这是棉花糖的新功能。

在应用清单中的对象android:allowBackup="false"内添加标签<application>以禁用此行为。

如果 android:allowBackup标记与您正在使用的任何其他库冲突,则还应该添加tools:replace="android:allowBackup"


4
就是这样 我不知道此功能。从用户的角度来看非常不错。在测试首次运行功能时有点烦人。谢谢!
s3kt0r

1
谢谢男人,我想知道为什么即使我是第一次安装该应用程序也能自动登录。实际上,它的共享首选项已还原。
Rakesh Yadav

完美的解决方案
Solanki Kamlesh

23

添加到Mo1989答案中,如果 android:allowBackup="false" 与任何其他库冲突,则使用tools:replace="android:allowBackup" Androidmanifest.xml的内部应用程序标记来修复错误


0

如果仅仅是因为测试而您正在测试,那么您还可以运行

adb shell pm clear [package name] 

这将清除数据。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.