我需要在RxLifecycle
处置之前关闭我的observable中的套接字连接。我怎样才能做到这一点?
答案 0 :(得分:2)
如果您想要执行操作,就在订阅者取消订阅observable之前,您可以使用operator doOnUnsubscribe
@Test
public void testDoOnUnsubscribe() {
Integer[] numbers = {0, 1, 2, 3, 4};
Observable.from(numbers)
.doOnUnsubscribe(() -> System.out.println("Last action must be done here"))
.subscribe(number -> System.out.println("number:" + number),
System.out::println,
() -> System.out.println("End of pipeline"));
}
应按此顺序打印
number:0
number:1
number:2
number:3
number:4
End of pipeline
Last action must be done here
答案 1 :(得分:1)
您可以尝试使用doFinally
在此Observable信号onError或onCompleted之后调用指定的操作,或者由下游处置。
答案 2 :(得分:1)
.doOnTerminate(() -> Log.d(LOGGER, "terminated"))