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

    在开发当中,我们肯定会有使用到Service相关的需求,编写程序的时候,肯定要做到Service与组件之间解耦,A...

网友评论

    本文标题:Android-Jetpack-LifecycleService

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