android - 如何取消与 RxJava2 的通话?
问题描述
我正在使用 RxJava2 和 Retrofit。在我的片段中,我请求上传一个本地文件:
Disposable disposable = mApi.requestUpload(file)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(response -> {
toast("success");
}, throwable -> {
toast("failed");
});
mCompositeDisposable.add(disposable);
然后,清除所有一次性用品onDestroyView()
@Override
public void onDestroyView() {
mCompositeDisposable.clear();
super.onDestroyView();
}
但是我用Charles查看了所有的请求,在我完成fragment之后发现请求还在执行。一段时间后文件仍然上传成功。
片段关闭时如何取消通话?
解决方案
用于disposable.dipose()
取消您的通话。
推荐阅读
- javascript - Javascript - 组合数组并保持相同的索引
- reactjs - 将 React 应用程序部署到 GitHub 页面时出现问题
- hibernate - 每组的最后一条记录
- python - 提高包含 scipy 优化的 python 脚本的效率
- javascript - 带有复选框和焦点的奇怪 MacOS Chrome 问题
- php - 如何添加 AJAX 表单提交错误警报?
- amazon-web-services - AWS beanstalk 监控指标在部署期间消失
- swift - 如何为类别/子类别快速设置数据模型
- python - 为什么导入熊猫突然不起作用?
- vim - 启动 vim 时自动加载 netrw