2015-12-10 13 views

Odpowiedz

17

Jedyny sposób, aby anulować zauważalne wykonanie RxJava - wypisz się z niego. RxJavaCallAdapter deleguje anulowanie do klienta okhttp.

Więc prosty coś zrobić tak:

Subscription subscription = getObservable().subscribe(); 

//When you want to stop execution 
subscription.unsubsribe(); 

Możesz sprawdzić kod here. Dokładniej te linie, jeśli kod

+0

Po prostu przetestować "unsubsribe()" i zobaczyć, że działa. Subskrybent nie będzie już wywoływany. Ale dlaczego okhttp continue drukuje log przez długi czas. Jak mogę sprawdzić, czy okhttp zostanie anulowane? –

+1

Sprawdziłem też, działa, simpli drukuje GET i END GET. Ale oczywiście żadna prośba nie mogła zostać powstrzymana. Może być w tym przypadku. Ale nadal jest to jedyny sposób, aby anulować żądanie i jest to absolutnie to samo, aby anulować anulowanie połączenia. Możesz to sprawdzić umieszczając breakpoint na call.cancel(); na przykład –

+0

Dziękuję, Wasilow. Ponieważ jest to tylko sposób, użyję go, dopóki nie znajdę lepszego rozwiązania. –

Powiązane problemy