一種Android數據請求框架



原文鏈接:http://blog.csdn.net/ahence/article/details/37702255

大部分Android應用一般都涉及到跟服務器的交互,除非是某些單機應用。既然要跟服務器打交道,向服務器請求數據幾乎是必做的事情,也許每家的APP都有一套自己的具體實現邏輯,但我們還是可以抽象出來一個通用的數據請求框架。

先上圖:


我們來具體分析一下,首先豎直虛線左側是Android客戶端,右側是服務器、後臺數據庫。

左側圖中,3個灰色的模塊就是Android中的MVC(詳細介紹請參考之前的一篇文字《Android中的MVC模式簡介》),其中ActivityFragment充當了Controller的角色。接下來我們詳細介紹下具體的步驟:

1.在Android應用中,用戶一般都通過View來交互,比如點擊某個按鈕調用接口請求數據,或者對ListView進行下拉刷新等,所以很多時候我們是通過View來告訴Controller需要請求數據,當然也有例外的情況,比如當加載某個Activity時就需要先請求數據,此時不需要第1步的通過View來觸發請求。

2.這一步比較簡單,就是向服務器發送http請求,在Android應用中,一般都是通過http的方式來請求數據的,請求過程中附帶必需的參數,爲了防止ANR,此操作包或後續的345步都應當在子線程中實現。

3.服務器向客戶端返回數據,通常就是輕量級的易傳輸的JSON格式,當然也有使用XML格式的。

4.客戶端拿到JSON格式的返回結果後,我們並不能直接使用,需要使用一個解析器Parser,把JSON數據解析成我們需要的數據模型,即得到Models。在這裏,如果是某些特殊的數據或者產品需求,可以對數據做緩存處理,當網絡異常或者下次不想聯網請求數據時,我們可以直接從Cache中拿數據來使用。

5.當數據被解析成Models之後,Controller就可以使用它來更新視圖了,解析數據完成後,一般都會設置一種機制來通知Controller,方法有很多,比如Android的消息機制。

6.最後一步是Controller使用Models中的數據來更新View,需要注意的是必須在UI線程來執行。

數據請求框架大概就是這樣,比較清楚的一個邏輯。我們請求的數據中不可避免地會有圖片數據,那麼圖片如何下載、如何做緩存,又是一個很大的問題,在這裏先總結這個總體的數據請求框架,後續會總結一下關於圖片下載、緩存、加載的框架。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章