Android 在多个生命周期方法中使用@OnLifecycleEvent注释的方法
我的片段类中有以下生命周期方法:Android 在多个生命周期方法中使用@OnLifecycleEvent注释的方法,android,android-lifecycle,Android,Android Lifecycle,我的片段类中有以下生命周期方法: override fun onPause() { super.onPause() releasePlayer() } override fun onStop() { super.onStop() if(Util.SDK_INT >= 24){ releasePlayer() } } 如您所见,它们都调用一个名为releasePlayer()的方法。
override fun onPause() {
super.onPause()
releasePlayer()
}
override fun onStop() {
super.onStop()
if(Util.SDK_INT >= 24){
releasePlayer()
}
}
如您所见,它们都调用一个名为releasePlayer()
的方法。
现在,我想使用这两种生命周期方法,将releasePlayer()
逻辑从Fragment
放入一个单独的类中,该类实现LifecycleObserver
接口。因此,每当触发onStart()或onResume()生命周期方法时,就会调用单独类中的releasePlayer()
代码(观察生命周期方法)。
为此,我现在有以下几点:
class PlayerLogic(private val lifecycleOwner: LifecycleOwner) : LifecycleObserver {
init {
lifecycleOwner.lifecycle.addObserver(this)
}
@OnLifecycleEvent(Lifecycle.Event.ON_START,Lifecycle.Event.ON_RESUME)
private fun releasePlayer(){ // ..do some stuff }
}
但是使用@OnLifecycleEvent(Lifecycle.Event.ON\u START,Lifecycle.Event.ON\u RESUME)
给我一个错误,告诉我@OnLifecycleEvent
注释只包含一个参数
那么,在调用onStart()
和onResume()
时,如何调用releasePlayer()
。
可能吗?如果是,如何复制?只需复制即可
@OnLifecycleEvent(Lifecycle.Event.ON_START)
fun start() {
releasePlayer()
}
@OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
fun resume() {
releasePlayer()
}
private fun releasePlayer() {
// ..do some stuff
}
复制一下就行了
@OnLifecycleEvent(Lifecycle.Event.ON_START)
fun start() {
releasePlayer()
}
@OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
fun resume() {
releasePlayer()
}
private fun releasePlayer() {
// ..do some stuff
}
哦,很好的解决方案。谢谢哦,很好的解决方案。谢谢