美文网首页安卓分享
android 生命周期监听(可以监听子进程)

android 生命周期监听(可以监听子进程)

作者: 一个冬季 | 来源:发表于2022-07-10 20:09 被阅读0次

    需求描述

    1、主进程监听子进程
    2、主进程需要知道当前整个APP(如果有一个子在,那么就是在)是否在前台
    3、子进程只能知道自己是否在前台

    github 地址

    接入教程

    1、app的build.gradle

     implementation 'com.github.CMzhizhe:ActivityLifeSdkApplication:1.0.0'
    

    2、配置清单文件

       <!--配置service-->
            <service android:name="com.gxx.activitylifelibrary.service.ActivityLifeService" android:exported="false" android:process=":tools"/>
    

    3、修改application

    class MyApplication : Application(), OnLifeCallBackListener, OnLifeServiceLifeListener {
        override fun onCreate() {
            super.onCreate()
            //初始化
            ActivityLifeCallbackSdk.init(BuildConfig.DEBUG,this,this)
            //绑定service
            ActivityLifeCallbackSdk.bindService(this,this)
        }
    
        override fun onActivityCreated(activity: Activity, bundle: Bundle?) {
            super.onActivityCreated(activity, bundle)
        }
    
        override fun onActivityPaused(activity: Activity) {
            super.onActivityPaused(activity)
        }
    
        override fun onActivityDestroyed(activity: Activity) {
            super.onActivityDestroyed(activity)
        }
    
        /**
         * App是否在前台
         * 如果当前是主进程,这里是可以知道所有子进程,包括自己的接口回调
         * 如果当前是子进程,这里只会知道自己的是否在前台
         * @param isForeground true 是的
         * @param processName 进程名称
         * @param isMainProcess 是否为主进程
         */
        override fun onProcessForeground(isForeground: Boolean, processName: String,isMainProcess: Boolean) {
            Log.e(TAG,"isForeground = " + isForeground)
            Log.e(TAG,"processName = " + processName)
            Log.e(TAG,"============================")
        }
    
        /**
         * @date 创建时间: 2022/6/22
         * @auther gaoxiaoxiong
         * @description 当前APP是否在主进程,如果有一个子进程在,就算整个APP在主进程
         **/
        override fun onAppForeground(isForeground: Boolean) {
            Log.e(TAG,"整个APP是否在前台 = " + isForeground)
        }
    
        /**
         * @date 创建时间: 2022/6/22
         * @auther gaoxiaoxiong
         * @description 绑定成功
         **/
        override fun onBindLifeServiceSuccess() {
            Log.d(TAG,"lifeService:${ProcessUtils.getProcessName(this)},绑定成功")
        }
    
        /**
         * @date 创建时间: 2022/6/22
         * @auther gaoxiaoxiong
         * @description 断开连接
         **/
        override fun onBindLifeServiceDisConnect() {
            Log.d(TAG,"lifeService:${ProcessUtils.getProcessName(this)},断开连接")
        }
    
    }
    

    相关文章

      网友评论

        本文标题:android 生命周期监听(可以监听子进程)

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