ActivityLifecycleCallbacks可以獲取應(yīng)用中所有的activity切換的生命周期,取得Activity中的一些屬性
class LauncherApp : Application() {
override fun onCreate() {
super.onCreate()
// 注冊(cè)監(jiān)聽(tīng)
registerActivityLifecycleCallbacks(activityLifecycleCallbacks);
}
// 活動(dòng)生命周期監(jiān)聽(tīng)器
private val activityLifecycleCallbacks: ActivityLifecycleCallbacks =
object : ActivityLifecycleCallbacks {
private val activityList: MutableList<Activity> = ArrayList()
override fun onActivityCreated(activity: Activity, savedInstanceState: Bundle?) {
activityList.add(activity)
Log.d("MyApplication", "Activity created: " + activity.javaClass.simpleName)
}
override fun onActivityStarted(activity: Activity) {
Log.d("MyApplication", "Activity started: " + activity.javaClass.simpleName)
}
override fun onActivityResumed(activity: Activity) {
Log.d("MyApplication", "Activity resumed: " + activity.javaClass.simpleName)
}
override fun onActivityPaused(activity: Activity) {
Log.d("MyApplication", "Activity paused: " + activity.javaClass.simpleName)
}
override fun onActivityStopped(activity: Activity) {
Log.d("MyApplication", "Activity stopped: " + activity.javaClass.simpleName)
}
override fun onActivitySaveInstanceState(activity: Activity, outState: Bundle) {
Log.d("MyApplication", "Activity save instance state: " + activity.javaClass.simpleName)
}
override fun onActivityDestroyed(activity: Activity) {
activityList.remove(activity)
val isFinish = activity.isFinishing
Log.d("MyApplication", "Activity destroyed: " + activity.javaClass.simpleName + ", isFinish = " + isFinish)
if (activityList.isEmpty()) {
unregisterActivityLifecycleCallbacks(this)
}
}
}
}