在开发当中,我们肯定会有使用到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。运用起来是不是很简单呢?开发的时候,我们可以用起来。
网友评论