Альтернатива наблюдаемым при использовании RxAndroid и требует значения только один раз

Я работаю над проектом Android, который использует реактивную структуру. У меня есть объект с членом данных, который может изменить свое значение на основе ввода данных, скажем, «имя». Мне нужно отслеживать изменения этой переменной, поэтому я создаю для нее тему поведения. Однако есть части кода, где мне нужно указанное значение только один раз, скажем, чтобы вывести предупреждение при нажатии кнопки, мне нужно показать его один раз, и мне все равно, изменится оно или нет. Я не знаю, хорошо ли иметь это значение в качестве субъекта поведения И иметь для него геттер, когда мне нужно получить к нему доступ один раз, я бы предпочел иметь одно или другое, и мне нужно слушать изменения, поэтому У меня должен быть предмет поведения. В то же время кажется излишним регистрироваться для него, получать последнее значение и отменять регистрацию сразу после получения значения. Какие-либо предложения?


person El Moreno    schedule 08.04.2016    source источник


Ответы (1)


Вы всегда можете использовать take(1) или similar, чтобы получить требуемое значение и немедленно прекратить подписку. Это сохранит общедоступный API провайдера или откуда бы ни поступил Observable/Subject, поскольку не будет дополнительного получателя. Это может упростить будущие изменения в провайдере, поскольку вам не нужно обновлять реализации как Observable, так и getter.

person Numan1617    schedule 09.04.2016