在 Android 中使用全局變量,除 public 靜態變量,還有就是使用 android.app.Application。Android 系統 會爲每一個程序運行時建立一個 Application 類的對象且僅建立一個,因此 Application 能夠說是單例 (singleton)模式的一個類因此在不一樣的 Activity、Service 中得到的對象都是同一個對象,因此經過 Application 來進行一些,數據傳遞,數據共享等,數據緩存等操做。在啓動 Application 時,系統會建立一個 PID,就是 進程 ID,全部的 Activity 會在此進程上運行,在建立 Application 時初始化全局變量,同一個應用的全部 Activity 都會獲取這些全局變量的值,可用於保存登陸狀態。Application 中的全局變量值會在 Activity 中被改變,其生命週期等於整個程序的生命週期android
-生命週期緩存
介紹一下 Application 的生命週期,以及在這些生命週期方法中能夠作那些操做app
onCreate 程序建立的時候執行ide
第三方庫的初始化(網絡請求、推送、地圖、分享等)、MultiDex(分包配置)、全局對象、環境配置變量、全局數據共享存儲,不能作耗時操做,要否則影響 App 的啓動速度函數
onTerminate 程序終止的時候執行cdn
onConfigurationChanged 配置改變時觸發這個方法。對象
屏幕旋轉blog
onLowMemory 低內存的時候執行接口
照片資源(GlideApp 的使用)緩衝的清除
onTrimMemory 程序在進行內存清理時執行
照片資源(GlideApp 的使用)、後臺服務,可根據不一樣的 level 來決定是否清除緩衝
補充: registerComponentCallbacks,ComponentCallbacks2回調接口,裏面會重寫onTrimMemory、onLowMemory、onConfigurationChanged。 ComponentCallbacks回掉接口裏面少一個onTrimMemory函數
registerActivityLifecycleCallbacks 和 unregisterActivityLifecycleCallbacks 函數,registerActivityLifecycleCallbacks對應用程序內全部 Activity 的生命週期監聽,當應用程序內 Activity生命週期發生變化時就會調用,ActivityLifecycleCallbacks接口裏面有對應的方法返回相對應Activity的生命週期狀態。unregisterActivityLifecycleCallbacks註銷