没有数据的 RxJava2 主题
RxJava2 Subject with no data
我必须监听一些事件,这可能发生在很多地方,比如按钮点击、textChanges、activityCallbacks 等
我正在使用 Subject
来触发此事件。但我不想通过此事件发送任何数据。
我只需要通知发生了一些事件。为此,是否有 Subject
没有类型?
现在我正在创建一个 Subject
of String
Subject<String> mSubject = PublishSubject.create();
我用一些空字符串触发它
button.setOnClickListener(v -> {
mSubject.onNext("");
});
但是 String
值没有任何意义。我只需要在没有任何数据的情况下触发一个事件,就像 Completable
在没有任何结果值的情况下完成。
有什么办法吗?
我需要像 mSubject.trigger()
这样的东西
正如 Hans 评论的那样,您可以定义一个代表可忽略值的枚举:
enum ValueLessSignal {
IGNORE_ME;
}
PublishSubject<ValueLessSignal> subject = PublishSubject.create();
subject.subscribe(ignore -> { System.out.println("Something happened"); })
subject.onNext(ValueLessSignal.IGNORE_ME);
您可以根据需要选择枚举及其单个实例的命名。
我必须监听一些事件,这可能发生在很多地方,比如按钮点击、textChanges、activityCallbacks 等
我正在使用 Subject
来触发此事件。但我不想通过此事件发送任何数据。
我只需要通知发生了一些事件。为此,是否有 Subject
没有类型?
现在我正在创建一个 Subject
of String
Subject<String> mSubject = PublishSubject.create();
我用一些空字符串触发它
button.setOnClickListener(v -> {
mSubject.onNext("");
});
但是 String
值没有任何意义。我只需要在没有任何数据的情况下触发一个事件,就像 Completable
在没有任何结果值的情况下完成。
有什么办法吗?
我需要像 mSubject.trigger()
正如 Hans 评论的那样,您可以定义一个代表可忽略值的枚举:
enum ValueLessSignal {
IGNORE_ME;
}
PublishSubject<ValueLessSignal> subject = PublishSubject.create();
subject.subscribe(ignore -> { System.out.println("Something happened"); })
subject.onNext(ValueLessSignal.IGNORE_ME);
您可以根据需要选择枚举及其单个实例的命名。