2011-11-21 76 views
1

我正在开发一个内容提供者,它将数据存储在SQLite数据库中。在开发过程中,我需要更改模式,或者完全删除数据库并重建它(在开发的这个阶段,我没有升级数据库)。ContentProvider数据库没有被删除

我发现数据库文件,存储在/ data/data // databases/app_db。当我把它放到桌面机器上时,我可以使用SqliteSpy来查看它的内容,并且一切正常。但是,当我删除它时,并不总是得到删除真的。虽然我无法在DDMS或ADB中看到该文件,但我的应用程序仍然可以看到它。

我试图确保当我删除文件时我的应用程序和服务没有启动,但似乎没有帮助。在大约一半的时间里,我删除了文件,我需要重新启动模拟器才能生效。

什么可以防止文件被真正删除?

Itay。

回答

2

我在为ContentProvider写单元测试时也看到过这个问题。您需要确保您已经杀死了使用该特定数据库文件的进程ContentProvider。只有删除它。

+0

我试过了。我会再试一次,以确保... – zmbq

+0

我试了几次,这次确保应用程序关闭*之前*删除文件(昨天我想我删除了文件,然后关闭应用程序完成)。它现在似乎工作。谢谢! – zmbq