在方法内创建临时Observable

时间:2017-11-05 23:16:59

标签: rx-java reactive

代码:

static void readCharacteristic( RxBleDevice device, UUID characteristic, Action1<byte[]> callback ) {
    Observable<RxBleConnection> deviceConnObservable = getSharedConnectionObservable( device );
    deviceConnObservable
        .subscribe(
                callback, 
                throwable -> Log.d( TAG, "Error" ),
                () -> {  } // completed the read
        );
}

我假设退出方法时,deviceConnObservable被销毁。但是Subscriber中的处理程序呢?它们是否已经消失,或者它们是否存在并被调用 - 当onError()被销毁时,可能是Observable处理程序?

假设他们没有,是否有可能在方法中创建Observable?看起来好像等待onCompleted()通知,不行吗?

1 个答案:

答案 0 :(得分:1)

如果您的<div class="container"> <div class="col-lg-6 col-md-6 > Column 1 </div> <div class="col-lg-6 col-md-6 > Column 2 </div <div> 在当前线程中运行,则在退出方法之前完成订阅。

如果您的getSharedConnectionObservable是异步的,那么您的getSharedConnectionObservable就会出现参考链。

Observable - &gt; Worker(Thread) - &gt; {Task(Action0)&amp; DownStream(Subscriber)UpStream(Observable))}

您的OperatorSubscribeOn即将完成,您可以亲自试用。