2017-09-26 7 views
-1

내 앱에서 http 요청을 쉽게 보낼 수 있도록 발리 라이브러리에 반응 형 래퍼를 쓰고 있습니다. 여기에 클래스가 있습니다 :구독이 처리 될 때 Observable 내에서 장기 실행중인 작업 취소

이제 누군가가 구독을 처분 할 때 모든 구독에 해당하는 모든 요청이 중지됩니다. 구독이 삭제 된 요청 만 중지 할 수있는 방법이 있습니까?

한 번만 구독하면 하나의 구독 만 유지할 수 있고 다른 사람이 다시 전화하면 캐시 된 관찰자가 반환된다는 것을 알고 있습니다. 구독 처분에 따라 HTTP 요청을 처리하는 더 좋은 방법이 있습니까? 당신은 fireRequest 외부에서 관리 할 필요가 없습니다

답변

1

, SingleEmitter은, 정확히에 대한 setCancellable 방법이있다가 취소를 수행하고 RxJava 누군가가 관찰 처분 할 때를 호출해야 할 것입니다.

fireRequest() 방법에 추가하고, doOnDispose 제거 :

e.setCancellable(()-> stringRequest.cancel()); 
+0

와우, 알고 din't. 고마워요! :) –