14

這是一個設計/最佳實踐的問題..最佳實踐應用程式

我是新的android開發,基本上新的網頁/移動解決方案。

所以,我的問題是 - 組織的Android應用程序從遠程服務器獲取數據的結構時,最佳做法有哪些?

應請求服務器進入一個的類,它與服務器的通信(GET和POST請求),或者我應該看我的請求爲數據源,這意味着每個數據類管理它本身?

,或者我應該有一個抽象多層次 - 獲取數據的一個級別,其餘爲模型,使用了一些接口,而無需從哪些源數據來自知道?

我很好奇的Android開發者如何有經驗的方法,這些設計問題...

回答

9

Virgil Dobjanschi presentation是一個很好的資源正如前面所指出,它基本上告訴你從後臺服務運行你的請求,這樣活動不會被破壞,並儘可能早地將你的數據存儲在數據庫中。

更多的技術細節,我這樣做的方法是將應用程序劃分爲三個部分:

1庫來封裝HTTP請求和響應(與ApacheHTTP)的處理,它可以處理簡單請求/響應和可能涉及cookie的高級功能(可能需要登錄)並修改HTTP標頭。

2-元帥/ Unmarsha層,其中,I解析服務器的數據(例如XML或JSON)並將其轉換爲對象(即模型),該我的應用程序的其餘部分將涉及。

3-持久層。

根據Dobjanschi的介紹,我通常會在活動內的線程工作人員的服務而不是中運行數據請求。

+0

這是很棒的視頻,謝謝!現在,我試圖實現它,特別是模式B(activity-> contentProvider - > ServiceHelper - > Service - > Rest - > Processor),現在我很難搞清楚這應該如何完成。 我不明白什麼是此服務的粒度,例如,如果我有我的模型對象或數據庫表稱爲用戶,UserDetails,城市,類別等...我應該有這些類的所有「數據類型」 ,還是專門? – daneejela

+0

例如,我應該有UserProcessor,CategoryProcessor(等), UserService,CategoryService(等) UserContentProvide,CategoryContentProvider(等)? – daneejela