如何在Android中用LiveData表示Observable.empty?

问题描述

Rx的Observable.empty()表示什么都不会通知

Android体系结构组件LiveData中是否有一个等效的类(或其他类)?

解决方法

观察时,您将始终获得当前设置的值。

因此,最好的选择是处理null的值,或使用LiveData<Optional<T>>(或者在Kotlin中,LiveData<T?>)。

,

如果您要公开一个LiveData来向调用者表明它永远不会发出值,那么我认为您没有办法用体系结构组件来表达它,因为LiveData总是可以发出以下值:它的通用类型。

您可以在Java中使用LiveData<Void>或在Kotlin中使用LiveData<Unit>来表示所发出的值没有类型,但是我相信仍然可以观察到它们,并且它的观察者仍然可以通过以下值触发不包含任何数据。 LiveData没有说“我完成了,再也不会发出任何东西”的概念。在这种情况下,科特林Flow可能会更好,因为流量可以在没有更多排放的情况下完成。