我正在設計一個應用程序,它涉及解析大型XML並保持整個應用程序中的序列化數據可訪問。我打算有一個數據對象來保存數據,每個組件(儘管不是每個組件都可以)訪問數據。如何在整個應用程序中保持數據持久性
我希望這些數據是非持久性的,從而應用程序解析XML並將數據保存在內存中。注意這個數據會很大(XML文件大於2MB)。另外,我希望數據在用戶切換到另一個應用程序時在那裏。
我已經調查可能的解決方案,如:
- 靜態對象
- 單身
- 推廣應用
- 使用服務
- 使用SQLite數據庫(我不想要做到這一點)
我不想ge t對Singletons與擴展Application的無盡爭論等,但我也想做單元測試,我聽說Singletons和靜態對象很難測試。
任何人都可以對此有所瞭解嗎?什麼是最優雅的方式來做到這一點?
編輯:數據應該持久還是不?將其持久化意味着理論上可以是XML的一個解析,將其串行化,將數據存儲在數據庫中,並可以使用對象從組件訪問數據。聽上去怎麼樣?
編輯2:我認爲在整個應用程序中保持數據可訪問性的方式是使用將存儲數據的SQLite數據庫。
使用XML文件,我將解析數據並在首次啓動時使用創建的SQLiteOpenHelper子類將其放入數據庫中。當需要數據時,我將使用讀訪問使用子類對數據庫進行查詢。每個組件(Activity/Service/etc)都有它自己的SQLiteOpenHelper實例來查詢數據庫並因此可以訪問數據。這聽起來怎麼樣?
對於相對較小的原始數據,我會考慮SharedPreferences。 – 2012-08-13 08:42:04
這可以適用於小數據,但處理的數據很大 – 2012-08-13 09:08:16