Closed junixapp closed 2 years ago
虽然正常注册的observer,在UI被destroy的时候能自动取消。但很多场景下,UI是用Dialog实现的;在Dialog中注册observer时是使用的context,即activity。但dialog消失的时候,希望能移除observer,但此时activity没有消失。如果多次打开dialog,会重复注册observer,引起一些问题。所以希望提供一个能移除一个lifecycleOwner所有observer的方法
这种场景建议使用observeForever+ removeObserver
@JeremyLiao 为了可扩展,我把dialog实现了LifecycleOwner接口,直接observer(dialog)了,dialog关闭后自动移除监听器了。
@JeremyLiao 为了可扩展,我把dialog实现了LifecycleOwner接口,直接observer(dialog)了,dialog关闭后自动移除监听器了。
这个解决方案nice!
虽然正常注册的observer,在UI被destroy的时候能自动取消。但很多场景下,UI是用Dialog实现的;在Dialog中注册observer时是使用的context,即activity。但dialog消失的时候,希望能移除observer,但此时activity没有消失。如果多次打开dialog,会重复注册observer,引起一些问题。所以希望提供一个能移除一个lifecycleOwner所有observer的方法