android删除数据库方法,Android删除SQL数据库

我有一个奇怪的问题,当我卸载应用程序时,我的SQL数据库不会自行删除

我没有在任何外部存储目录中创建数据库,并且确认数据库位于其默认位置:/data/data/com.example.app/databases/

卸载应用程序后,我希望擦除该位置的所有数据,但是当我从android studio再次运行应用程序时,新安装仍然可以看到所有旧数据

我已经尝试使用adb从数据库目录中手动删除.db文件,但是当我再次运行应用程序时,仍然可以看到旧数据

我也尝试进入应用程序设置并清除数据和缓存,但这似乎没有帮助

在我的代码中,我对数据库做任何“奇怪”事情的唯一地方是我在按钮点击时将数据库文件复制到新位置:

String pathToExternalStorage = Environment.getExternalStorageDirectory().toString();

File exportDir = new File(pathToExternalStorage, "/SensorData");

File subjectDataDir = new File(exportDir, "/subjects");

File data = Environment.getDataDirectory();

String currentDBPath = "//data//com.example.app//databases//" + DBHelper.DATABASE_NAME;

File currentDB = new File(data, currentDBPath);

File destDB = new File(exportDir, DBHelper.DATABASE_NAME);

FileChannel src = new FileInputStream(currentDB).getChannel();

FileChannel dst = new FileOutputStream(destDB).getChannel();

dst.transferFrom(src, 0, src.size());

src.close();

dst.close();

然后在新创建的文件上运行mediascanner,以便我可以立即获得MTP访问权限

我怀疑这些过程中的任何一个都可能导致这种情况发生吗?

我当前的问题是如何在没有root访问权限的情况下从手机中手动删除数据库?

更大的问题是什么可能导致卸载过程不删除数据库文件?新安装的应用程序版本(卸载后)如何仍然可以看到旧的数据库信息?

我不知道如何开始搞清楚这一点……

编辑:

这变得越来越陌生.这似乎只发生在Windows上.这是我尝试过的过程:

>从手机中删除/卸载应用程序

>在Windows上从android studio运行应用程序.问题:数据库仍然存在,应用程序看到所有旧数据(即使我卸载了应用程序)

>卸载应用

>在我的macbook上从android studio运行应用程序.没问题!数据库是新鲜的,没有找到现有数据

>再次卸载应用程序

>再次在我的Windows机器上测试.现在,数据库返回,应用程序看到旧的​​旧数据库信息(从第2步开始!).此时卸载并没有摆脱它

所以我现在真的很茫然.为什么在Mac上运行会好吗?为什么在Mac上运行并清理数据库后,再次带上旧的Windows数据库呢?这不是所有操作系统都独立吗?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值