MVP:有呼吸的Android架構
想必大家對MVP框架都比較熟悉了,今天和大家分享幾個在MVP框架中比較核心的要點。
思考幾個問題:
(1)後臺非同步處理任務沒有完成,presenter會持有View的引用,此時返回退出了Activity,後臺非同步的動作不會立即停止,這裡就會有記憶體洩漏的隱患。
解決方案:在presenter中加入管理view生命週期的方法。
方案原理:presenter中增加了類似的生命週期的方法,在退出Activity的時候取消持有Activity。
(2)在銷燬後需要思考一點,後臺的延時操作返回時,這個時候view被銷燬了,如果接著去呼叫view的方法就會丟擲空指標異常。
解決方案:在回用view的方法時,首先判斷當前view是否已被置為null。
方案原理:根據當前的狀態來控制是否需要回到View的方法,避免了在Activity被回收後,繼續呼叫view的回撥方法處理更新控制元件,導致程式crash。
(3)因為presenter的生命週期方法都會有,所以每個Activity去繫結View和解綁View就會有很多重複的程式碼。
解決方案:所以我們定義一個BasePresenter,在其中定義繫結View和解除繫結的方法(BasePresenter要使用泛型,因為不能限定死傳入的View。)。
方案原理:利用泛型和繼承的方式構建動態化。
(4)BaseView:一般顯示載入內容的介面,都會有showLoading和hideLoading兩個方法。
解決方案:定義BaseView。
方案原理:利用繼承的優點,子類View就可以直接繼承自BaseView,共享方法和變數。
ok,直接看程式碼。
相關文章
- Android MVP 架構AndroidMVP架構
- Android-MVP架構AndroidMVP架構
- Android架構系列-MVP架構的實際應用Android架構MVP
- Android架構系列-基於MVP建立適合自己的架構Android架構MVP
- Android開發中的MVP架構詳解AndroidMVP架構
- Android 架構選型 (MVP+DataBinding)Android架構MVP
- Android應用架構之MVP實現Android應用架構MVP
- Android MVP架構改造~如何重用頂層業務AndroidMVP架構
- 談談 Android MVP 架構 | 掘金技術徵文AndroidMVP架構
- android-MVP架構中Presenter的單元測試AndroidMVP架構
- Android 架構設計:MVC、MVP、MVVM和元件化Android架構MVCMVPMVVM元件化
- Android MVP架構(RxJava+SQLBrite+Retrofit+OkHttp+Glide)AndroidMVP架構RxJavaSQLHTTPIDE
- MVP應用架構模式MVP應用架構模式
- MVP架構設計 初探MVP架構
- Android MVP架構(Volley+CursorLoader+ContentProvider)AndroidMVP架構IDE
- MVC、MVP、MVVM,談談我對Android應用架構的理解MVCMVPMVVMAndroid應用架構
- iOS開發-MVP架構模式iOSMVP架構模式
- iOS 架構模式–解密 MVC,MVP,MVVM以及VIPER架構iOS架構模式解密MVCMVPMVVM
- 【Android架構】基於MVP模式的Retrofit2+RXjava封裝(一)Android架構MVP模式RxJava封裝
- Android MVP架構從入門到精通-真槍實彈AndroidMVP架構
- Android從零開始(第三篇)MVP架構搭建AndroidMVP架構
- 架構設計的歷史·MVC·MVP·MVVM架構MVCMVPMVVM
- 開源專案Philm的MVP架構分析MVP架構
- Kotlin如何實現MVP架構KotlinMVP架構
- 【Android】Dagger2實現更為規範化的MVP架構AndroidMVP架構
- 【Android架構】基於MVP模式的Retrofit2+RXjava封裝之多Url(七)Android架構MVP模式RxJava封裝
- 設計Android應用程式架構的基本指南:MVP:第2部分Android架構MVP
- MVP那些事兒 (2) 初探MVC架構MVPMVC架構
- iOS MVC、MVVM、MVP架構模式淺淺析iOSMVCMVVMMVP架構模式
- iOS架構淺談從 MVC、MVP 到 MVVMiOS架構MVCMVPMVVM
- 看完不會寫MVP架構我跪搓板MVP架構
- MVP+Dagger2設計,MVP架構模式實現新思路 (Demo)MVP架構模式
- Java轉Kotlin MVP架構的一點小問題JavaKotlinMVP架構
- Android 架構元件 - 讓天下沒有難做的 AppAndroid架構元件APP
- Android:會呼吸的懸浮氣泡Android
- Android系統架構-----Android的系統體系架構Android架構
- 帶你動手實現 MVP+Clean架構!MVP架構
- [譯]iOS架構模式——解密MVC、MVP、MVVM和VIPERiOS架構模式解密MVCMVPMVVM