RxJava2没有数据的主题

时间:2017-12-27 13:02:07

标签: java android rx-java rx-java2

我必须听一些事件,这可能发生在许多地方,如按钮点击,textChanges,activityCallbacks等。

我使用Subject来触发此事件。但是我不想发送这个事件的任何数据。

我只需要通知某些事件已经发生。那就是Subject没有Type?

现在我正在创建Subject String

     Subject<String> mSubject = PublishSubject.create();

并使用一些空字符串

触发它
  button.setOnClickListener(v -> {
                    mSubject.onNext("");
                });                  

String值没有任何意义。我只需要触发没有任何数据的事件,就像Completable完成时没有任何结果值。

有没有办法做到这一点?

我需要像mSubject.trigger()

这样的东西

1 个答案:

答案 0 :(得分:2)

正如汉斯评论的那样,你可以定义一个表示可忽略值的枚举:

enum ValueLessSignal {
    IGNORE_ME;
}

PublishSubject<ValueLessSignal> subject = PublishSubject.create();

subject.subscribe(ignore -> { System.out.println("Something happened"); })

subject.onNext(ValueLessSignal.IGNORE_ME);

您可以根据需要选择枚举及其单个实例的命名。