2011-01-20 46 views
4

我剛開始做我的第一個Android應用程序這恰好是一個RSS閱讀器。我做了一些關於Google的搜索,但沒有看到明確的參考。我想做的事就是我的緩存xml文件(Feed文件)的SD卡,所以當手機處於離線狀態,用戶仍然可以通過自動判斷應用程序未檢測到網絡時,尋找它查看訂閱。我現在所擁有的是緩存圖像的機制,但我想知道如何將其用於其他文件,因爲它僅指定用於使用HashMap()將其轉換爲位圖的圖像。安卓:從RSS Cache的XML文件飼料

+0

我thnkü可以通過保存RSS來sdcard.and whnevr互聯網connn做到這一點。是不是你可以通過從SD卡中提取 – 2011-01-20 05:16:29

+0

其他方法是你可以將該XML存儲在sql lite數據庫中,並在沒有連接時讀取該文件 – 2011-01-20 06:47:04

回答

4

我認爲首選方式是(就像Umakant帕蒂爾評論你的問題),將數據存儲在SQLite數據庫。你通常會編寫一個後臺服務,它隨時用服務器端數據刷新你的數據庫。你的應用程序將只能從你的SQLite數據庫中讀取。請注意,服務和應用程序通常會獨立生活,彼此獨立(您的應用程序永遠不會直接與您的服務進行通信)。

此過程也是從架構的角度稍微更安全。由於網絡流量,您的應用程序永遠不會依賴網絡連接或時間問題。它只會依靠本地設備上的數據和數據庫訪問。

提示#1: 你可以傳遞給AlarmManager將在給定的時間間隔喚醒你的服務的條目。您的服務將與RSS源同步您的數據庫,然後殺死自己(節約資源總是好的:-)

有服務於Android的一個很好的例子:http://developer.android.com/reference/android/app/Service.html

而關於此內容提供商: http://developer.android.com/guide/topics/providers/content-providers.html

提示#2: 請注意,您不一定需要內容提供商與您的數據庫進行通信。如果您希望「標準化」數據庫通信,則內容提供商很有好處。也許應用程序的幾個組件需要訪問它甚至是多個應用程序,那麼使用已經定義的「事實上的標準」訪問數據庫的方式是很好的。