(4.2.48)MVPArms源码分析
生活随笔
收集整理的這篇文章主要介紹了
(4.2.48)MVPArms源码分析
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
MVPArms源碼分析
多module下全局Application的沖突和聚合問題
全局配置信息GlobalConfigModule
GlobalConfigModule使用建造者模式將App的全局配置信息封裝進Module(使用Dagger注入到需要配置信息的地方)。
可以配置CacheFile,Interceptor等,甚至于Retrofit,Okhttp,RxCache都可以自定義配置因為使用的是建造者模式所以如您有其他配置信息需要使用Dagger注入,直接就可以添加進Builder并且不會影響到其他地方
Application聚合ConfigModule
ConfigModule 將各個module的相關配置信息注冊到最終的宿主app中,用來給框架配置各種自定義屬性和功能,配合 GlobalConfigModule 使用非常強大
快速開始
ConfigModule接口定義
public interface ConfigModule {/*** 使用{@link GlobalConfigModule.Builder}給框架配置一些配置參數** @param context* @param builder*/void applyOptions(Context context, GlobalConfigModule.Builder builder);/*** 使用{@link AppLifecycles}在Application的生命周期中注入一些操作** @param context* @param lifecycles*/void injectAppLifecycle(Context context, List<AppLifecycles> lifecycles);/*** 使用{@link Application.ActivityLifecycleCallbacks}在Activity的生命周期中注入一些操作** @param context* @param lifecycles*/void injectActivityLifecycle(Context context, List<Application.ActivityLifecycleCallbacks> lifecycles);/*** 使用{@link FragmentManager.FragmentLifecycleCallbacks}在Fragment的生命周期中注入一些操作** @param context* @param lifecycles*/void injectFragmentLifecycle(Context context, List<FragmentManager.FragmentLifecycleCallbacks> lifecycles); }AppDelegate(代理 Application 生命周期)
全局Activity管理 AppManager
AppManager用于管理所有的Activity,內部持有:
AppManager封裝有多種方法,可以很方便的對它們進行操作,也可以在未持有AppManager的情況下,通過EventBus遠程遙控它的所有方法,這樣我們可以在整個app的任何地方對任何Activity進行全局操作,比如在app請求網絡超時時讓最前端的Activity顯示連接超時的交互頁面(這個邏輯不用寫到當前請求的Activity里,可以在一個單例類里做全局的統一操作,因為可以隨時通過AppManager拿到當前的Activity)
總結
以上是生活随笔為你收集整理的(4.2.48)MVPArms源码分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Data Analysis: What
- 下一篇: 排序算法比较总结