2011-03-27 61 views
-1

我試圖創建一個應用程序,它存儲了通過DDMS從KML文件接收到的GPS數據;數據存儲在Sqlite數據庫中。我的主要問題是每次運行應用程序時我都會遇到這樣的問題 存儲在數據庫中相同的GPS數據,所以是在我的數據庫內的一個大混亂。現在有人說我可以使用SharedPreferences存儲一個密鑰,告訴我如果數據庫已經存在,假設數據庫存在,那麼已經滿了。問題是我使用SqliteBrowser來創建我的數據庫和Tabels,我使用我的代碼來添加信息到Tabels.So只是驗證是否tabels存在不會幫助我太多。有任何人有任何想法我怎麼能管理Sqlite數據庫,所以我不存儲兩次相同的數據?SharedPreferences用於我的數據庫

回答

-1

有幾種可能的解決方案

1)檢查數據插入新的數據(一個簡單的SELECT語句)

2)使用SQLiteOpenHelper之前已經存在 - 它提供了功能的數據庫版本管理 http://developer.android.com/reference/android/database/sqlite/SQLiteOpenHelper.html

3)保存關於SharedPreferences中已添加內容的信息。你可以有一個版本代碼或類似的東西來區分數據庫的不同狀態。

我建議你使用1或2,這取決於你真正想達到什麼。也許你可以更具體地說明爲什麼數據目前多次插入,它是什麼類型的數據(靜態或動態創建,Web服務等?)

+0

是的,我可以。很好,很簡單。我創建了一個包含兩部分的應用程序:1)跟蹤:這意味着我必須模擬一個GPS模塊,並通過DDMS使用KML文件來實現。我模擬兩個城市之間的GP數據,比方說,但是在同時我必須存儲此數據以便稍後重建路線。因此,我要存儲的數據是經度和緯度....每當我運行我的應用程序時,我都會將這些數據存儲在我的數據庫中(而不是我想要)......但是,一旦我模擬了兩個城市之間的GPS,並且我曾經運行該應用程序以便改變一些細小的數據,然後再次存儲數據。 – adrian 2011-03-27 20:57:45

+0

2)我使用先前存儲的數據重新制作GPS數據的路徑(汽車的路徑...)...所以如果我的數據存儲了幾次,我的數據庫已經毀了......我希望我已經明確了enoug.Thank你! – adrian 2011-03-27 20:59:35

+0

好的,基本上你想記錄跟蹤數據並在以後重播。數據庫中是否應該有多條路線?如果不是,則使用1或3進行檢查 - 檢查數據是否存在,如果沒有數據可用,則只插入數據。否則,我會建議更先進的東西 - 使用第二個「路線」表,在其中維護記錄的路線並檢查重複。 – alibi 2011-03-27 21:07:24