android 元件化架構讀書筆記(二) Application的基礎和作用
當app啟動時最先啟動的是Application,每個APP執行時僅建立唯一一個Application,用於儲存系統的一些資訊。
Application中比較重要的方法:
1.onCreate:在建立應用程式時回撥的方法
2.onTerminate:當終止應用程式物件時呼叫,不保證一定被呼叫
3.onLowMemory:當後臺程式已經終止且資源缺乏時呼叫。當後臺程式已經終止、前臺應用還不夠時的時的情況下,好的應用程式一般會在這個方法中釋放一些不必要的資源來應對
4.onConfigurationChanged:配置改變時觸發這個方法,如手機螢幕旋轉等。
registerActivityLifecycleCallbacks:當App內的Activity的生命週期發生改變時就會呼叫。
registerActivityLifecycleCallbacks和unregisterActivityLifecycleCallbacks:用於註冊或登出App內所有Activity的生命週期的監聽。
======================================================================================
主模組和次模組都有一個Application時,可能會編譯出錯。
原因:gradle外掛預設啟用Maniifest Merger Tool,如果主模組和次模組的Application的配置中定義了相同屬性(如android:icon和android:theme),則此時會合並失敗。
編譯合併存在四種情況:
1.主模組有Application,次模組沒有自定義的Application,這時會自然引用主模組中的Application
2.主模組有自定義的Application,次模組沒有,自動引入主模組的Application
3.次模組有自定義的Application,需要解決衝突,每個次模組的Application都需要新增上tools:replace欄位
4..主模組有自定義的Application,次模組也有自定義的Application,在主模組的Application中新增上tools:replace解決衝突
P:新增tools:replace="android:icon,android:theme"(多個屬性用“,”隔開),要在manifest的根標籤上加入:"xmlns: