2011-07-30 45 views
0

我正在編程的android-app將有一個產品數據庫,比如說他們的150-250。每個項目將具有像名稱,成本,EAN號碼等屬性。最有效的存儲,寫入和讀取物品數據庫的方式。

我的第一個想法是將所有內容都存儲在應用程序啓動時加載的xml文件中,然後將其填充到產品的數組/地圖中。產品需要在列表視圖中可見,用戶應該能夠通過應用程序添加更多這些產品。他們的大多數屬性幾乎不會改變,但其中的一些屬性會隨時變化。我不知道改變產品數組和xml中的屬性是否是一個好主意,然後在xvi文件eveytime同時發生更改時保存。也許序列化會是一個更好的選擇? 儘管無論哪種方式,我想這個文件不需要寫入每一個變化,我想這可以像應用程序關閉或間隔時間或什麼時候完成(不太確定那一個,因爲我'所有新的開發移動應用程序,我不希望任何數據丟失)。 也許這是一個好主意,以某種方式分離他們的「靜態」和「動態」屬性?

我很迷茫。任何關於什麼是最好的方法的建議?

一直在尋找在stackoverflow和谷歌,但還沒有真正能夠找到有用的東西。

回答

2

您將一直訪問的結構化數據在SQLite數據庫中處理得更好,而不是在XML文件中處理。如果你使用XML路由,你必須編寫所有的代碼來解析,查詢和存儲數據。使用數據庫時,大多數這些功能需要的代碼少得多,而且最有可能效率更高。錯誤的可能性也較小。您還可以避免必須考慮何時將對內存XML表示所做的更改提交給實際文件。

我強烈建議你閱讀data storage的文章,也看Notepad Tutorial因爲它表明,你需要創建,更新和查詢數據庫,並將其與ListView整合的所有技術。

看起來好像有很多研究,但是如果您使用內置的SQLite而不是自行推出XML文件支持的存儲,您的應用將變得更加靈活和無缺陷。

3

您應該使用基於的SQLite。這樣您就可以獨立於任何其他組件(活動或服務)更新您的產品。當日期發生變化時,所有有關方都可以收到通知。

此外,還支持ListView中的ContentProvider(通過CursorAdapter),並且您還從Loaders(通過CursorLoader)獲得免費支持。除了所有這些,你有一個更有效的數據存儲方式(即你不需要在每次保存時重寫xml文件)。 SQLite將會以一種非常有效和可靠的方式來保存所有的變化。

相關問題