2010-09-30 26 views
3

我越來越關注如何處理我設計的應用程序的數據。我想從網上拉出物品清單。數據會定期更新,我認爲將所有數據存儲在設備上會很好,所以應用程序可以快速加載並在後臺線程中刷新數據,而不必在每次啓動時等待網絡。獲取在線數據並將其存儲在Android中的最佳方式

我想我應該用XML來提供數據,並且有一個線程解析並保存到SQLite數據庫中,但我不確定這是否是「最佳實踐」。人們是否有其他方式來處理這個問題?

+0

使用JSOUP! ..... – 2015-03-09 13:43:15

回答

2

最乾淨的方式(或者至少,我認爲這是最乾淨的方式)是實現一個定製的ContentProvider類與您的服務器接口。您可以查詢contenprovider,並且如果它沒有本地緩存​​中的數據(例如,如您所說的SQLite數據庫),它會從您的服務器下載並將其添加到本地數據中。爲什麼是內容提供商?因爲那樣你就可以輕鬆地跨應用程序訪問你的數據,並且在使用意圖時你有一個很好而乾淨的方式來獲取你的數據。 此外,我個人更喜歡不在應用程序未運行時下載數據,因爲這會導致電池壽命,而用戶不會主動請求數據。

1

聽起來很合理。

如果下載新數據需要幾秒鐘的時間,您可能需要使用Service。這將允許您即使在用戶離開您的應用程序時繼續更新。

另外,想想你將如何通知用戶正在發生的事情。顯示一些進度指標總是一個好主意。否則,用戶可能會認爲數據不是最新的,因爲該應用程序已損壞。

+0

這不是一個糟糕的路要走,我正計劃在更新屏幕的頂部有一些「令人耳目一新的...」行。但我實際上正在努力解決提供數據(XML或JSON文件?)的複雜問題並將其存儲在設備上。 – ASTX813 2010-10-01 18:59:36

+0

好的XML或JSON主要是個人偏好問題,哪一個更容易在您的服務器上實現。他們在Android上都有良好的API支持。 要將數據存儲在設備上,Thomas對使用ContentProvider的響應可能是最好的方法,如果您想要一個乾淨的設計。 – Julien 2010-10-03 19:19:15

相關問題