Android-Jetpack-LifecycleService

作者: 阿博聊编程 | 来源:发表于2022-04-12 15:03 被阅读0次
    图片来源网络

    在开发当中,我们肯定会有使用到Service相关的需求,编写程序的时候,肯定要做到Service与组件之间解耦,Android为我们提供了LifecycleService类帮助我们实现。这篇博客主要分享LifecycleService相关的知识,希望对看文章的小伙伴有所启发。

    查看Service与LifecycleService关系

    层级关系,我们用一张图来说明,来源Android官网:


    来源Android官网

    导入依赖

    原生的Android SDK并没有LifecycleService类,需要导入Android的拓展库:

    implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
    

    代码示例

    1.创建服务的观察者AppServiceObserver

    import android.util.Log
    import androidx.lifecycle.LifecycleObserver
    import androidx.lifecycle.OnLifecycleEvent
    import androidx.lifecycle.Lifecycle
    
    /**
     * 类说明:AppService的观察者
     */
    class AppServiceObserver : LifecycleObserver {
    
        @OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
        private fun startGetLocation() {
            Log.d(TAG, ">>>>>>>>>>>>>>>>> 开始获取定位")
        }
    
        @OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)
        private fun stopGetLocation() {
            Log.d(TAG, ">>>>>>>>>>>>>>>>> 停止获取定位")
        }
    
        companion object {
            const val TAG = "TAG"
        }
    }
    

    2.创建AppService并绑定AppServiceObserver:

    import androidx.lifecycle.LifecycleService
    
    class AppService : LifecycleService() {
        override fun onCreate() {
            super.onCreate()
            lifecycle.addObserver(AppServiceObserver())
        }
    }
    

    3.在界面里面启动或者停止服务,根据生命周期变化可以看到相应的Logcat。运用起来是不是很简单呢?开发的时候,我们可以用起来。

    相关文章

      网友评论

        本文标题:Android-Jetpack-LifecycleService

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