2010-09-16 64 views
0

我正在测试我正在处理的应用程序,并且想要删除我的应用程序创建的数据库,以便我可以将所有数据从我的Web服务器读回新的数据库。从模拟器中删除应用程序数据库

我启动了adb,去了data/data/my.applicaton.package/databases并做了一个“rm mydatabase”。这删除了数据库(注意:我做了很多次之前没有问题)。

我再次启动了我的应用程序,令我惊讶的是没有创建新的数据库。更令人惊讶的是我的应用程序中有数据。我的应用程序仍然从某些地方拉取数据!它从我的数据库中获取一个Cursor,并使用一个CursorAdapter来填充列表。所以,它显然是从一个数据库(看似缓存的?)。

究竟它从哪里拉,为什么?它指向一个现在被删除的数据库。

回答

1

你确定你还没有启动应用程序,打回家去主屏幕,然后做你的adb魔术?如果你这样做了,那么程序仍然在后台运行,并且数据库的更改没有正确拾取。在更改数据库之前,应确保在应用程序的DDMS中终止正在运行的进程。然后启动应用程序并查看是否收到更改。

我遇到过这个问题多次。

+0

杀死DDMS中的进程修复了这个问题。这很奇怪。我已经做了很多次了。看似不需要杀死DDMS中的进程。另外,在data/data/my.application.package /数据库中执行ls不会显示数据库。所以在应用程序使用它的时候它必须被复制到某个地方? – Andrew 2010-09-16 19:12:06

+0

这是我的猜测。希望听到更有经验的人知道肯定 – I82Much 2010-09-16 21:21:11

相关问题