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
}

哦,很好的解决方案。谢谢哦,很好的解决方案。谢谢