2015-12-21 61 views
0

上下文
我有一個新聞活動,其中包含一個ListView。列表中的每個項目都包含一些文本和一個圖像。現在,每當用戶打開活動時,應用程序都會向服務器請求獲取數據。不幸的是,如果用戶沒有激活的Internet連接,我只是把舉杯說:「請檢查您的網絡連接」如何在我的應用程序中啓用離線閱讀?

要求
我想從上屆會議顯示新聞文章,如果用戶沒有按沒有有效的互聯網連接。我將會話定義爲用戶啓動活動並按下返回按鈕退出時的時間。

圖書館使用
我使用改造圖書館HTTP請求和畢加索的加載圖像。

我已經試過到目前爲止
在探索改造,我發現,改造默認緩存一段時間的響應。所以沒有任何互聯網連接,我也能夠獲得數據。在畢加索,我發現我們可以將圖像保存到設備上的任何位置。

如何去執行它?
由於這將是我的應用程序的一個重大變化,我想知道使用上述兩個庫啓用離線閱讀的最佳方式是什麼?其他應用程序如何設法執行此操作?另外如果我可以得到一些關於這個實現的引用或者一些博客,那麼它會很棒。

+1

只需設置BroadcastReciever來監聽網絡更改,如果沒有可用的Internet,則應顯示數據保存在磁盤上。 –

回答

0

您可以使用SharedPreferences或json文件在本地存儲上次更新的數據。 而不是顯示吐司,你可以從本地加載上次更新的數據。

+0

SharedPreference不是最好的選擇,因爲它比數據更偏向於偏好。 – Cocorico

+0

您可以編寫.json文件並在用戶沒有活動的Internet連接時加載它。 –

+0

是的,您可以在其中編寫.json文件,但這是一個糟糕的設計。你必須閱讀和解析所有的json文件來製作orederby或其他東西。所以,我建議現在開始使用DB。我想他以後會用find owner,訂購它們,修改它們和其他東西來進行其他操作,所以現在開始使用DB是一個不錯的選擇,或者你認爲你不會對項目進行復雜的操作。 – Cocorico

0

畢加索是一個很好的圖像選擇,它保存圖像本地和以後自動重用。

對於您的項目,我建議使用一個小型的本地DataBase:在Android中,我們使用SQLiteDataBase。這裏是一個小教程:http://www.androidhive.info/2011/11/android-sqlite-database-tutorial/

所以,我建議你這種模式

  • 用戶打開活動
  • 系統檢索數據庫數據並行
  • ,系統開始下載新項目。
  • 當新項目被下載時,你應該注意到像9gag或Facebook應用程序這樣的用戶。
1

使用該應用程序的internal storage

Parse the image to a byteArray和文本到一個單一的字符串,所以你可以很容易地將其轉換爲一個byteArray。

爲文件命名,以便您可以輕鬆檢索它們並將它們重新鏈接在一起。

相關問題