我正在创建一个Android应用程序,并且数据库在卸载后仍然保留。当我卸载应用程序时,应用程序目录被破坏(/ data/user/0/<名称>),这很好。但是当我再次安装应用程序时,数据库将与旧数据一起恢复。Android - 手机完全擦除后,应用程序数据库正在恢复
随着应用程序的卸载,我会点击安装APK的Android Studio上的调试按钮。我在我的应用程序类的第一行(扩展应用程序的第一行)上放置了一个断点,并在该断点被打开时,导航到/ data/user/0/<应用程序名称>/databases文件夹并执行ls和DB在那里。它甚至从来没有命中我的数据库类来初始化它。我很难过,不知道为什么这样做。
下面是我试图调试它迄今:
- 从手机下载的APK在安装后,打开它,并寻找在那里的数据库。
- 在代码中重命名数据库,该数据库使用正确的名称创建新的数据库文件,但仍旧创建旧数据库。具有新名称的数据库在卸载后似乎不会持续存在。
- 我已经在数据库文件名中搜索了我的计算机和手机的根目录,而该数据库文件名似乎并未显示数据库文件。
- 我通过重新安装操作系统,植入设备,并将TWRP与出厂重置一起放在那里,完全擦除了电话。
- 禁用即时运行。
我正在使用的手机是运行Android 7.0的Nexus 6p。
的Android Studio的信息:
的Android 2.2.1工作室
构建#AI-145.3330264,建于2016年10月6日
JRE:1.8.0_112释放-B05 x86_64的
JVM:OpenJDK的64位服务器VM by JetBrains sro
tl; dr,我的应用程序数据库在卸载/设备擦除后不断回来。
什么是'tools:replace =“android:allowBackup”'? –
这固定它!但是为什么在卸载/擦除后恢复它?它从哪里得到数据库? – Nick
请参阅以下链接:为什么您需要工具:替换https://code.google.com/p/android/issues/detail?id=70073 它正在进行备份,因为您没有在表现。 – Bryan