1. 程式人生 > >android 元件化架構讀書筆記(二) Application的基礎和作用

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:

tools="http://schemas.android.com/tools",否則找不到命域名。