我是否应该使用BehaviorSubject从变量创建一个Observable,如果我只想让变量在变化时自己发出?

时间:2017-10-05 07:34:45

标签: rx-java reactive-programming rx-java2

(首先,虽然我认为这是一个与一般Rx编程相关的问题,但由于我正在开发Android并使用RxJava,因此以下问题将在AndroidRxJava上下文。)

我是RxJava的新手,因此我想先以一种简单的方式实现它。

方案

我有一个表单,我想只在填写表单中的所有必填字段时才启用该按钮 我已经设法为所有EditText输入实现此功能。

现在,我的表格也有图像选择 因此,我有一个Bitmap变量,用于存储用户选择的图像 由于此图片也是必需的,因此我只需在Bitmap变量不是null的情况下启用该按钮。

问题

所以,我在想的是,从这个Observable变量创建一个Bitmap,当它的值被更新时,它将自行发出(或者至少是Boolean)。

< / p>

然后很快,我找到一些建议使用BehaviorSubject的StackOverflow帖子。

问题是,在我读过的每个Rx入门教程中,Subject都没有被提及。甚至在Rx的官方网站上,它还有一篇文章a link来说明

  

“[主题]是Rx世界的”可变变量“,并且在大多数情况下   你不需要的情况。“

所以,我开始怀疑我是否真的应该使用Subject做我想做的事。我怀疑可能是我应该从更新变量的函数创建一个Observable。

然后我被困住了。我怎么能这样做?

1 个答案:

答案 0 :(得分:2)

这种情况很少见,BehaviorSubject是合适的。您可以onNext上面的图片通知观察者,然后您可以getValue()直接访问此图片。