2016-04-16 104 views
1

我想反彈你們的東西。好習慣 - 通過實例傳遞實例和調用方法

在我的移動應用程序中,我有很多活動和片段類,其中很多都包含一個或兩個上傳圖片到WebAPI 2.0 Web服務等的代碼。對不起,僅供參考。

現在,我想創建一個新的類(例如ServiceController),然後將所有服務調用移動到這個新類。問題是,每個方法都包含顯示ProgressBar和隱藏ProgressBar的代碼,並讓活動繼續到下一個等。等等。

現在,傳遞一個實例正在調用的ServiceController的方法在ServiceController的方法,然後實例活動做到這一點:

公共靜態無效uploadImages(活動活動){ 新BaseAsyncTask(){ ... ... activity.hideProgressBar(); ... }

PS:具體來說就是「activity.hideProgressBar();」以上。

感謝和樂趣, 彼得

+0

解決你聽說過模型 - 視圖 - 演示,或其他一些模式?如果你不把ui和業務邏輯混合在一起,你可以重複使用更多的代碼和更清晰的接口 –

回答

0

有類之間解耦的方法很多,所有的服務電話首先不應該在活動

第一個解決方案 1)創建一個包含onsuccess,onfailure抽象方法的接口,並且該方法的參數將是各自的數據模型類類型 2)上述接口應該由依賴於來自服務器的數據的活動來實現。在這些實現中,顯示和隱藏進度條,填充數據UI發生 3)如你所說,服務控制器實例將被創建,在創建服務控制器的情況下,我們必須通過接口的參考。這些接口用於服務控制器和活動之間的通信。

第二個解決方案

使用事件總線服務控制器和活動 OTTO EVENT BUS我會更喜歡這些之間的通信。

讓我知道如果您有任何疑問,我希望這些將解決您的問題。

第三個解決方案

使用MVP模式參考MVP Architecture Tutorial最佳的所有