В Reactive Java нам сказали, что вызов .subscribe()
возвращает «ссылку на подписку». Но Subscription
- это интерфейс, а не класс. Итак, какой объект мы передаем, который реализует этот интерфейс? У нас есть какой-то контроль над этим?Какой объект является реактивной подпиской на Java?
Существует класс Subscriptions
, который может создавать и возвращать несколько разных видов Subscription
, но что с ними делать? Если я пишу
Subscription mSub = Subscriptions.create(<some Action0>);
mSub = someObservable.subscribe();
не будет мой только что созданный Subscription
просто переписываются любыми возвращает .subscribe()
вызовов? Как вы используете созданный вами Subscription
?
(На несколько связанной ноте, что точка Subscriptions.unsubscribed()
, которая «возвращает подписку, в которой отписать ничего не делает, так как это уже отписался. А?)
Спасибо. Вопросы: хранит ли подписка на активность Android каким-то образом позволяет повторно подключиться к наблюдаемому при перезапуске Activity? Можете ли вы привести пример? Как использовать созданную подписку в реализации по умолчанию? Я объявил некоторые Подписки (для RxAndroidBle) в приложении для Android, и это, похоже, не вызывает проблемы. –
Основное использование ссылки 'Subscription' - это вызов' .dispose() 'на нем. Поэтому, если вы не обрабатываете отмену подписки, просто отпустите ссылку «Подписка», напишите 'myObservable.subscribe();', не присваивая ее переменной. Типичным использованием является подписка на 'onResume()' метод, хранение 'Subscription' и in' onPause()' для вызова 'subscription.dispose();' –