Eu tenho que ouvir algum evento, o que pode acontecer em muitos lugares, como cliques de botão, textChanges, activityCallbacks etc.
Estou a usar Subject
para acionar esse evento. Mas eu não quero enviar nenhum dado com este evento.
Eu só preciso notificar que algum evento aconteceu. Para isso existe um Subject
sem tipo?
Agora eu estou criando um Subject
do String
Subject<String> mSubject = PublishSubject.create();
e estou provocando com alguma corda vazia
button.setOnClickListener(v -> {
mSubject.onNext("");
});
mas isso String
valor não faz nenhum sentido. Eu só preciso acionar um evento sem nenhum dado, assim como Completable
conclui sem nenhum valor de resultado.
Há alguma maneira de fazer isso?
Eu preciso de algo como mSubject.trigger()
Respostas:
0 para resposta № 1Como Hans comentou, você poderia definir um enum que representa um valor ignorável:
enum ValueLessSignal {
IGNORE_ME;
}
PublishSubject<ValueLessSignal> subject = PublishSubject.create();
subject.subscribe(ignore -> { System.out.println("Something happened"); })
subject.onNext(ValueLessSignal.IGNORE_ME);
Você pode escolher a nomenclatura do enum e sua instância única como achar melhor.