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

RXJava2-如何将使用者作为参数传入

白灿
2023-03-14

我正在Android中使用以下rxjava依赖项:

 compile 'io.reactivex.rxjava2:rxjava:2.1.0'
compile 'io.reactivex.rxjava2:rxandroid:2.0.1'

我正在尝试创建一个方法,它将把观察者作为参数。我有一些问题,我想是因为这是rxjava2,所以东西更新了,我有点困惑。

让我向你展示我想要完成的事情:

private Subscription subscription = Scriptions.empty(); //this isn't working. how to set a empty observer IN RXJAVA2?

protected abstract Observable buildUseCaseObservable(); //RETROFIT WILL BUILD THE OBSERVABLE FOR ME SOMEWHERE ELSE


public void execute(Consumer UseCaseSubscriber){
    this.subscription = this.buildUseCaseObservable()
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(UseCaseSubscriber); //THIS LINE IS NOT WORKING , ERROR IS IN THE PHOTO
}

public void unsubscribe(){
    if(!subscription.isUnsubscribed()){
        subscription.unsubscribe();
    }
}
protected abstract Observable buildUseCaseObservable();

    @SuppressWarnings("unchecked")
    public void execute(Observer UseCaseSubscriber){
        this.subscription = this.buildUseCaseObservable()
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(UseCaseSubscriber);
    }

    public void unsubscribe(){
        if(!subscription.isUnsubscribed()){
            subscription.unsubscribe();
        }
    }

那么如何保存一次性,这样我们就可以退订了呢?

共有1个答案

东郭凯捷
2023-03-14

订阅已“重命名”为2.x版本的一次性。您可以在这里阅读有关此更改的rxJava wiki解释。

那么如何保存一次性,这样我们就可以退订了呢?flowable.subscribe(Subscriber)不返回disposable,但observable.subscribe(Subscriber)返回。如果不需要背压,只需使用.toobservable()flowable转换为observable

 类似资料:
  • 组件具有变量作为观察者: 当

  • 假设我们有python中的函数: 虽然我可能会将传递给A,但我正在寻找一种优雅的方法来传递类似于的东西来执行。 我现在看到的唯一方法是发送一个函数列表并按顺序应用它们。有没有更好的办法?

  • 最近我在使用c语言时遇到了一些问题,基本上是这样的: 在一个函数(比如intmain)中,我声明了一个变量Y=5,我有一个lambda函数,它接收一个值并将Y相加; 我的问题是:我需要将这个lambda函数传递给一个已经存在的函数,这样它就可以在另一个函数内部调用。 我尝试了几件事,但没有一个像我预期的那样工作(有些甚至不起作用): 另一个问题是我不能改变我的receives函数签名,因为代码的剩

  • 我必须将一个协议作为参数传递给一个函数。协议是泛型的,具有关联的类型。我找不到一个好办法。 我想要实现的基本上是在JSON中存储一个键值对。所以我有一个通用的数据类型协议,它设置/获取值(根据数据类型设置和获取) 在另一个协议中,我希望将这个泛型数据类型协议作为函数参数传递。 在下面的代码中,我得到的协议“dataType”只能用作泛型约束,因为它有自身或关联的类型要求

  • 问题内容: 我正在创建一种通过传递搜索字段从任何表中选择ID的方法。 但是我得到一个有关语法错误的MySqlException。当我查看“异常”消息时,它向我显示带引号的查询表!如何将表格作为不带引号的参数传递? 问题答案: 大多数数据库不允许您通过参数指定表名或列名。参数用于 值 。如果确实确实需要使它动态化,则应验证输入(它应该是一个已知的表名,并且该表中具有已知的列名),然后将其包括在SQL

  • 我目前正在做一个项目,需要开发一个原生DLL(用C++)来访问Java应用程序。我选择了JNA来做桥接工作,我面临着从Java向C++函数传递正确的int值的问题。 简单地说,我有一个函数在C++中接受一个int值作为参数:(代码被剥离,方法被重命名以保持机密性) 是一种简单的方法,它使用将任何数据类型的值转换为。执行情况如下: 是从我在代码中使用的实际结构重命名的。是的数组。和都是共享内存中的全