2012-09-23 43 views
-1

我的音樂應用程序引用永久存儲的數據。所有目前都存儲爲文本文件:Android txt文件v的數據庫

收藏夾 - 單個文本文件數組。應用程序啓動,讀取文本文件,存儲在內存中。在ListView展開時檢查數組。如果數組更改文本文件被重寫。

上次播放 - 單個文本文件數組列表。每5秒更新一次。保留播放歌曲的歷史記錄,以便用戶返回任何專輯並恢復位置。

播放列表 - 當前爲單個文本文件,每個列表一個。需要時從文件名生成的播放列表列表。每個播放列表文本文件都有數組列表。必要時讀寫。

最常玩 - 單個文本文件數組列表。每首歌曲更新一次。

我想知道這些數據是否需要更改爲數據庫,或者我是否採取了正確的方法。我沒有預見到需要添加額外的數據,所以這應該是我需要的最多。

請諮詢!

+0

看看我的[回覆](http://stackoverflow.com/a/9141116/996493)關於** txt文件v的數據庫**的簡要信息。 – Lucifer

回答

2

正確的做法是爲每個要代表的東西創建一個類,例如,最愛。每個類都有一個save()和reload()方法。重點是您可以在save()和reload()方法中更改底層存儲機制,而無需更改其他代碼。想象一下,未來,您希望啓用保存到Dropbox。您只需更改這些方法,您的應用就可以正常工作(好吧,您需要添加內容才能獲取Dropbox帳戶詳細信息,但您明白了)。

您可以進一步定義用於加載和保存的接口。除了保存和加載之外,該接口可以使用一個類,只負責任何事情。只要任何消費者和提供者類遵守界面,就可以混合搭配,甚至實現尚未發明的存儲方法,而無需重新編碼您的應用程序。你只有一個班級可以和你一起工作,每當你改變你的存儲方式。

class StorageManager(){ 

    enum DataType {Favourites, MostPlayed, PlayList }; 

    ... 

    public save(DataType dataType){ 

      if (dataType == DataType.Favourites){ 

       saveFavouritesToDB(); 

      ... 

      ... 

} 

該方法爲您提供最大的靈活性,最大限度的未來打樣和更好的可維護性。

3

您可以將文本文件存儲在SharedPreference中,它應該可以正常工作。

數據庫(如果需要存儲大量數據,最好)。使用數據庫比解析字符串更爲優化。

1

我認爲最好是使用數據庫。

數據庫應該爲您提供一些優化和性能改進,基本上您不必重新發明輪盤(在磁盤上執行讀/寫操作,在重寫之前使用一些緩衝區等)。

另外,我想你一定會喜歡所有代碼將被組織和分裂到自己的層次,一旦你開始使用這種方式。