У меня есть поток, который выполняет операции HTTP, обновляет интерфейс и повторяется каждые 20 секунд.
Мне нужно преобразовать этот поток Java в RXJava2 (Android RX).
Нет необходимости запускать его, когда приложение находится в спящем режиме (onPause)
Но когда пользователь возвращается в приложение (onResume), наблюдаемое должно немедленно подписаться и запустить (выбрасывает данные), а затем продолжить 20-секундное повторение.
Мне удалось повторить действие и отменить его в onPause,
но я не могу снова выполнить операцию подписки в методе onResume - он просто останавливается.
Вот мой код. Спасибо.
protected void onResume() {
super.onResume();
disposables = MainCulc_Observable()
.interval(0, 5, TimeUnit.SECONDS)
.subscribeOn(Schedulers.io()) // Run on a background thread
.observeOn(AndroidSchedulers.mainThread()) // Be notified on the main thread
.subscribeWith(MainCulc_Observer);
}
@Override
protected void onPause() {
super.onPause();
disposables.dispose();
}
DisposableObserver MainCulc_Observer = new DisposableObserver<Long>() {
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
@Override
public void onNext(Long status) {
}
};