Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
RxJava:Subscription';s unsubscribe()方法是';t调用_Java_Reactive Programming_Rx Java_Rx Android - Fatal编程技术网

RxJava:Subscription';s unsubscribe()方法是';t调用

RxJava:Subscription';s unsubscribe()方法是';t调用,java,reactive-programming,rx-java,rx-android,Java,Reactive Programming,Rx Java,Rx Android,在下面的代码中,我需要在取消订阅时释放一些资源(其中记录了“释放”) Observable first=Observable.create(new Observable.OnSubscribe()){ @凌驾 公开作废通知(订户大多数情况下,呼叫取消订阅仅对直播序列有效,如果某些序列已完成,则可能不会传播:运营商可能不会保留其源以避免内存泄漏。主要想法是运营商在终止前或终止后释放其管理的任何资源呃,他们调用下游的onError或onCompleted方法,但这与1.x有些不一致 如果要确保资源已

在下面的代码中,我需要在取消订阅时释放一些资源(其中记录了“释放”)

Observable first=Observable.create(new Observable.OnSubscribe()){
@凌驾

公开作废通知(订户大多数情况下,呼叫
取消订阅
仅对直播序列有效,如果某些序列已完成,则可能不会传播:运营商可能不会保留其源以避免内存泄漏。主要想法是运营商在终止前或终止后释放其管理的任何资源呃,他们调用下游的
onError
onCompleted
方法,但这与1.x有些不一致

如果要确保资源已释放,请查看
using
操作符,该操作符将在终止或取消订阅时释放您的资源:

Observable.using(
    () -> "resource", 
    r -> Observable.just(r), 
    r -> System.out.println("Releasing " + r))
.subscribe(System.out::println);
Observable.using(
    () -> "resource", 
    r -> Observable.just(r), 
    r -> System.out.println("Releasing " + r))
.subscribe(System.out::println);