У меня есть наблюдаемое повторение, но когда приходит время избавиться от него, например, когда я перехожу на другой экран, оно продолжает повторяться в фоновом режиме?
Я уверен, что от него избавились, так как я остановил код и подтвердил, что это происходит. Я также уверен, что он не перезапускается, так как функция больше не вызывается после перехода на новый экран.
Сначала я подумал, что это просто остановится, но после некоторого прочтения кажется, что повтор может быть за пределами одноразового использования, которое я очищаю, поэтому я попытался добавить его, если / еще, в выражении повторения когда.
observable.observeOn(AndroidSchedulers.mainThread())
.repeatWhen { result ->
if(!disposable.isDisposed) {
result.delay((20000 + delay), TimeUnit.MILLISECONDS)
}else {
Observable.empty<Int>()
}
}
.subscribeOn(Schedulers.io())
.subscribe({ result ->
//Do something
}, { error ->
error.printStackTrace()
}).addTo(tickerDisposables)
Как мне сделать эту остановку, когда я вызываю call disables.dispose и переключаю экраны?
Примечание. Наблюдаемый является универсальным типом, поэтому мне нужно добавить тип при выполнении Observable.empty ()
Обновление: похоже, проблема в другом месте моего кода. Размер моего tickerDisposable к тому времени, когда я пытаюсь его утилизировать, пуст, поэтому он не останавливает вызовы. Если я найду, где это, это должно решить проблему.