当前位置: 首页 > 知识库问答 >
问题:

为什么在使用BackPreasureBuffer时会出现MissingBackpreasureException?

洪俊能
2023-03-14

我想在RxJava中实现一个下载一些文件的处理队列。我想下载的文件数量可能高达100个左右。

一切都是在Android上使用RxJava 1.1.1开发的

PublishSubject<URL> publishSubject = PublishSubject.create();
_subject = new SerializedSubject<>(publishSubject);

_subscription = _subject
                .subscribeOn(Schedulers.io())
                .observeOn(Schedulers.io())
                .subscribe(_getObserver());  // Observer

_subject.onBackpressureBuffer(10000, new Action0() {
    @Override
    public void call() {
        Log.d(TAG, "onBackpressureBuffer called");
        return;
    }
});

// download a file
_subject.onNext(aValidURL);

我做错了什么?

共有1个答案

况浩邈
2023-03-14

在RxJava中,应用运算符时,会得到一个新的可观察实例,该实例具有修改后的行为,但原始实例保持不变。在这里,您对_subject调用了onbackpressurebuffer,但不使用它的结果,否则调用不执行任何操作。您需要按顺序应用它:

PublishSubject<URL> publishSubject = PublishSubject.create();
_subject = new SerializedSubject<>(publishSubject);

_subscription = _subject
                .onBackpressureBuffer(10000, new Action0() {
                    @Override
                    public void call() {
                        Log.d(TAG, "onBackpressureBuffer called");
                        return;
                    }
                })
                .subscribeOn(Schedulers.io())
                .observeOn(Schedulers.io())
                .subscribe(_getObserver());  // Observer

// download a file
_subject.onNext(aValidURL);
 类似资料:
  • 我已经调整了控制器构造函数和fxml,所以除了fxml构造和fxml加载之外,控制器的所有fxml设置都在fxml中。这里是我的控制器:

  • 问题内容: 当我运行以下代码时: 我得到一个异常说: 为什么会出现此异常? 编辑:tmpList是一个LinkedList,其每个节点都包含DepConfAttr类型的对象。 我正在基于内存(首先是最高内存)对tmpList进行排序,这是DepConfAttr对象的属性之一。 上面的代码反映了我要通过以下代码实现的目标 问题答案: 为什么会出现此异常? 您要遍历列表,而不是通过迭代器从列表中删除一

  • 我收到这样的类型错误:- 甚至我正在使用jdk版本:-java版本"1.7.0_55"OpenJDK运行时环境(IcedTea 2.4.7)(7u55-2.4.7-1ubuntu1)OpenJDK 64位服务器VM(构建24.51-b03,混合模式) 请有人帮助我,我应该在我的项目中使用这样的组件。

  • 问题内容: 我正在使用ant生成javadocs,但是一遍又一遍地获取此异常-为什么? 我正在使用JDK 1.6.0_06 版本。 问题答案: 看来这已被报告为Java错误。这似乎是由于使用了第三方库(例如JUnit)中的注释,而在Javadoc调用中不包含带有该注释的jar。 如果是这种情况,只需在javadoc上使用-classpath选项并包括额外的jar文件。

  • 问题内容: 我已经调整了控制器的构造函数和fxml,以便将控制器的fxml的所有设置都放在fxml中,除了FXML的构造和fxml的加载。这是我的控制器: 和我的fxml文件: 当调用fxmlLoader.load()并返回FXMLLoader时会发生stackoverflow fxmlLoader = new FXMLLoader(…),然后再次调用fxmlLoader.load()…为什么会发

  • 错误:第 1 行的解析错误:函数搜索(sour ^ 期望“字符串”、“数字”、“空”、“真”、“假”、“{”、“[”,得到“未定义” 代码: