在开发针对所有4.1以上版本的Android应用程序时,我发现卸载应用程序并重新安装它不会清除其数据。
该应用程序被设计成存储它在第一个屏幕中询问的详细信息。
在操作系统4.4.4版本卸载并重新安装后,app会提示用户填写数据,这是正常的。但是在6.0版本中,相同的安装/卸载顺序将带回最初输入的数据。
我试图通过访问/data/data/my package文件夹来确保数据库在卸载后已经消失,并且在卸载期间确实删除了该文件夹。
我试图通过访问设置页面删除该应用程序,通过Titanium Backup,结果是一样的。该设备是运行v6.0的Nexus 5。
这种奇怪行为的原因是什么?
如果你的目标是android 10,那么你必须把android:hasFragileUserData="true"在AndroidManifest.xml的应用程序标签
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<application
android:name=".MyApplication"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
android:allowBackup="true"
android:hasFragileUserData="true">
.....
</application>
</manifest>
android:hasFragileUserData是一个新的清单设置(我猜)。“如果为真,则提示用户在卸载时保留应用程序的数据”。这似乎是被滥用的时机,但我可以看到它在某些应用程序中可能有用的地方。
见https://commonsware.com/blog/2019/06/06/random -思考- q -β- 4. - html