【Android,Jetpack】Jetpack Lifecycle: 使你的组件作为LifecycleOwner

43 阅读1分钟

Jetpack LifeCycle: 使你的组件作为LifecycleOwner

有时我们使用CameraX需要指定,lifecycleOwner, 但是popwindow之类的组件, 不是lifecycleowner, 那么怎么办呢, 自己实现!

  • crazy coding
class Excample: LifecycleOwner {

    private val _lifecycleRegistry by lazy { LifecycleRegistry(this) }

    init {
        _lifecycleRegistry.currentState = Lifecycle.State.STARTED
    }
 
     protected fun finalize() {
        _lifecycleRegistry.currentState = Lifecycle.State.DESTROYED
		...
    }
  
    override fun getLifecycle(): Lifecycle {
        return _lifecycleRegistry
    }
}