RxJava调用一次性配置()

问题描述 投票:1回答:1

我正在使用rxjava进行改造。在以下代码中,subscribeOn()和observeOn()继续运行。该应用程序不断终止并自行启动。

disposable = api.getUsers("135")
                .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe({
                users -> showResult(users)
            })

如果我在上面之后立即处理它将无法获取完整数据。所以我的问题是何时处理dispoable或如何知道subscribeOn()和observeOn()何时完成了它的任务。

android rx-java retrofit rx-java2 rx-android
1个回答
1
投票

或者你可以在你的disposeonDestroy() Activity

或者你可以使用DisposableSingleObserver,如下:

Disposable disposable = yourApi.subscribeWith(new DisposableSingleObserver<List<String>>() {

        @Override
        public void onSuccess(List<String> values) {
            // work with the resulting values
        }

        @Override
        public void onError(Throwable e) {
            // handle the error case
        }
    });

然后在使用结果后(在此示例中,当您不再需要值(api响应)时,您可以调用dispose

    disposable.dispose();

处置观察者的最佳地点将在onDestory(),这将是您不再需要api结果的地方:

protected void onDestroy(){
    super.onDestroy();
    disposable.dispose();
}
© www.soinside.com 2019 - 2024. All rights reserved.