Я использую CompositeDisposable для наблюдения за сетевым вызовом. Наблюдаемый находится внутри класса, который использует мой контекст активности, поэтому даже после вызова clear () в onDestroy () наблюдаемый продолжает работать, а его класс содержит ссылку на мою активность, вызывающую утечку памяти. Есть ли способ остановить процесс, а не просто перестать наблюдать за ним?
Класс с Observable
public ProgressObservable(Context context) {
super(context);
createProgressObservable();
}
private void createProgressObservable() {
progressObservable = authenticationObservable
.flatMap((Function<Object, Observable<ProgressResponse>>)
Response -> Observable.fromCallable(() -> {
...
...
return pResponse;
})).cache();
}
Создание наблюдаемого в моем Activity
Observable<ProgressResponse> prObservable = new ProgressObservable(context).getProgressObservable();
disposable.add(prObservable
.subscribe(progress -> mListener.onSilentRefreshComplete(),
error -> {
}));
@Override
public void onDestroy() {
super.onDestroy();
if (isFinishing()) {
disposables.clear();
}
}