美文网首页
Application使用ActivityLifecycleCa

Application使用ActivityLifecycleCa

作者: wenSome | 来源:发表于2024-07-17 15:34 被阅读0次

ActivityLifecycleCallbacks可以获取应用中所有的activity切换的生命周期,取得Activity中的一些属性

class LauncherApp : Application() {

    override fun onCreate() {
        super.onCreate()
        // 注册监听
        registerActivityLifecycleCallbacks(activityLifecycleCallbacks);
    }

    // 活动生命周期监听器
    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)
                }
            }
        }
}

相关文章

网友评论

      本文标题:Application使用ActivityLifecycleCa

      本文链接:https://www.haomeiwen.com/subject/rhblhjtx.html