2016-10-11 33 views
0

我正在创建一个Android应用程序,并且数据库在卸载后仍然保留。当我卸载应用程序时,应用程序目录被破坏(/ data/user/0/<名称>),这很好。但是当我再次安装应用程序时,数据库将与旧数据一起恢复。Android - 手机完全擦除后,应用程序数据库正在恢复

随着应用程序的卸载,我会点击安装APK的Android Studio上的调试按钮。我在我的应用程序类的第一行(扩展应用程序的第一行)上放置了一个断点,并在该断点被打开时,导航到/ data/user/0/<应用程序名称>/databases文件夹并执行ls和DB在那里。它甚至从来没有命中我的数据库类来初始化它。我很难过,不知道为什么这样做。

下面是我试图调试它迄今:

  1. 从手机下载的APK在安装后,打开它,并寻找在那里的数据库。
  2. 在代码中重命名数据库,该数据库使用正确的名称创建新的数据库文件,但仍旧创建旧数据库。具有新名称的数据库在卸载后似乎不会持续存在。
  3. 我已经在数据库文件名中搜索了我的计算机和手机的根目录,而该数据库文件名似乎并未显示数据库文件。
  4. 我通过重新安装操作系统,植入设备,并将TWRP与出厂重置一起放在那里,完全擦除了电话。
  5. 禁用即时运行。

我正在使用的手机是运行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,我的应用程序数据库在卸载/设备擦除后不断回来。

回答

1

你有没有试过把它添加到你的Android清单?

<application 
     android:allowBackup="false" 
     tools:replace="android:allowBackup"> 

记住它应该在应用程序标签内。

+0

什么是'tools:replace =“android:allowBackup”'? –

+0

这固定它!但是为什么在卸载/擦除后恢复它?它从哪里得到数据库? – Nick

+1

请参阅以下链接:为什么您需要工具:替换https://code.google.com/p/android/issues/detail?id=70073 它正在进行备份,因为您没有在表现。 – Bryan

相关问题