什么是 Lifecycle
Lifecycle 生命周期感知组件,可执行操作来响应另一个组件(如 activity 和 fragment)的生命周期状态的变化。这些组件有助于您编写出更有条理且往往更精简的代码,此类代码更易维护。
build.gradle 增加 ktx 依赖
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib:1.4.32"
implementation 'androidx.core:core-ktx:1.2.0'
}
如何使用 Lifecycle
class MyLocationListener : LifecycleObserver {
private val TAG = "jetPack"
@OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
fun create() = Log.d(TAG, "create 正在启动系统定位服务中...")
@OnLifecycleEvent(Lifecycle.Event.ON_START)
fun start() = Log.d(TAG, "start 连接定位系统服务...")
@OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
fun resume() = Log.d(TAG, "resume 系统定位的界面展示...")
@OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
fun pause() = Log.d(TAG, "pause 系统定位的界面关闭...")
@OnLifecycleEvent(Lifecycle.Event.ON_STOP)
fun stop() = Log.d(TAG, "stop 断开系统定位服务...")
@OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)
fun destroy() = Log.d(TAG, "destroy 正在停止系统定位服务...")
}
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
lifecycle.addObserver(MyLocationListener())
}
}