在方法中创建临时可观察量



代码:

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中的处理程序呢?他们是也走了,还是继续存在并被召唤——也许是Observable被摧毁时onError()处理者?

假设他们没有,是否有可以在方法中创建Observable的情况?如果您等待其onCompleted()通知,似乎应该没问题,不是吗?

如果getSharedConnectionObservable在当前线程中运行,则订阅在方法退出之前完成。

如果您的getSharedConnectionObservable是异步的,则存在指向Observable的引用链。

Worker(Thread) -> Task(Action0) -> { DownStream(Subscriber) & UpStream(Observable)OperatorSubscribeOn )}

您的Observable将完成,您可以自己尝试。

相关内容

  • 没有找到相关文章

最新更新