1. 程式人生 > >Android元件化初探三(Application共存問題)

Android元件化初探三(Application共存問題)

背景:殼工程僅能繼承一個元件的Application,但可能有多個元件需要在Application進行初始化操作,本文將介紹一種高效低耦合的方法解決這個問題。

一、在基礎元件建立介面,可新增Application生命週期的函式介面(例如onTerminate等)


ApplicationImpl

二、在各個元件中實現該介面,並將需要在Application中初始化的操作在實現類中進行。例如:


三、在基礎元件的Application實現各元件Application初始化操作(反射方法實現)

首先記錄各元件的ApplicationImpl實現類路徑


通過反射方法找到對應的類,並呼叫介面


最後在oncreate方法呼叫modulesApplicationInit()。

當然,也可以在殼工程的Application中new一個ApplicationImpl實現類的例項,並依次呼叫各個生命週期。但上篇文章講到Application與Library切換的問題。如果元件由Library切換為Application執行模式時,殼工程將因找不到類而報錯。通過反射方法能有效的避開這個錯誤。