2010-09-16 62 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

相關問題