问题描述
Rx的Observable.empty()
表示什么都不会通知。
Android体系结构组件LiveData中是否有一个等效的类(或其他类)?
解决方法
观察时,您将始终获得当前设置的值。
因此,最好的选择是处理null
的值,或使用LiveData<Optional<T>>
(或者在Kotlin中,LiveData<T?>
)。
如果您要公开一个LiveData来向调用者表明它永远不会发出值,那么我认为您没有办法用体系结构组件来表达它,因为LiveData总是可以发出以下值:它的通用类型。
您可以在Java中使用LiveData<Void>
或在Kotlin中使用LiveData<Unit>
来表示所发出的值没有类型,但是我相信仍然可以观察到它们,并且它的观察者仍然可以通过以下值触发不包含任何数据。 LiveData没有说“我完成了,再也不会发出任何东西”的概念。在这种情况下,科特林Flow可能会更好,因为流量可以在没有更多排放的情况下完成。