Android 使用可观察的:RxJava+;改装+;仓库模式

Android 使用可观察的:RxJava+;改装+;仓库模式,android,kotlin,retrofit,retrofit2,rx-java,Android,Kotlin,Retrofit,Retrofit2,Rx Java,我正在尝试为我的应用程序设置改型和rxjava,以便对Web服务进行api调用。我在订阅主活动中的可观察对象时遇到一些问题。该体系结构遵循viewmodel/repository模式,下面是我的代码 存储库 class WisproRepository() { val request = ServiceBuilder.buildService(JsonPayments::class.java) val apicall: Observable<Payment> = r

我正在尝试为我的应用程序设置改型和rxjava,以便对Web服务进行api调用。我在订阅主活动中的可观察对象时遇到一些问题。该体系结构遵循viewmodel/repository模式,下面是我的代码

存储库

class WisproRepository() {

    val request = ServiceBuilder.buildService(JsonPayments::class.java)
    val apicall: Observable<Payment> = request.getPostsV2(2, 100, "authorizationcode")

    fun getPayments(): Observable<Payment?>? {
        return apicall.subscribeOn(Schedulers.newThread())
                .observeOn(AndroidSchedulers.mainThread())
    }

}
现在,当数据到达时,我将不得不订阅Observable并设置recyclerview,而不是观察livedata,但我不知道如何在subscribe方法中做到这一点。但我不明白如何在subscribe方法中做到这一点。此外,如何访问可观察对象内的付款数据

我也不明白这里的台词

val request = ServiceBuilder.buildService(JsonPayments::class.java)
val apicall: Observable<Payment> = request.getPostsV2(2,100, "authorization code")
apicall.subscribeOn(Schedulers.newThread()).observeOn(AndroidSchedulers.mainThread())
val request=ServiceBuilder.buildService(JsonPayments::class.java)
val apicall:Observable=request.getPostsV2(2100,“授权代码”)
apicall.subscribeOn(Schedulers.newThread()).observeOn(AndroidSchedulers.mainThread())

subscribeOn
observeOn
是否正在执行呼叫?如果是,它是如何工作的(我习惯于排队方法)?我错过什么了吗?如何设置
onResponse
onFailure
回调?

可观察事件基本上是一个事件流,每个事件都是您正在观察的类型。在这种情况下,
付款
。每次您获得一个
Payment
对象时,都会调用可观察对象的
onNext()
方法。一旦流完成,将调用发出完成事件的
onComplete
,如果出现错误,
onError
(这两个都是终端事件)

您还没有发布
JsonPayments
类,所以我不能确定,但是您需要在
getPostsV2()
中创建一个可观察对象并返回它,以便您可以观察或订阅它


如果您想要
onResponse
onFailure
回调,您基本上可以将
Payment
对象包装到
Result
,其中
Result
具有这两个属性。您的最终可观察对象将是
可观察对象
,其中每个事件的类型为
结果

可观察对象基本上是一个事件流,每个事件都是您正在观察的类型。在这种情况下,
付款
。每次您获得一个
Payment
对象时,都会调用可观察对象的
onNext()
方法。一旦流完成,将调用发出完成事件的
onComplete
,如果出现错误,
onError
(这两个都是终端事件)

您还没有发布
JsonPayments
类,所以我不能确定,但是您需要在
getPostsV2()
中创建一个可观察对象并返回它,以便您可以观察或订阅它


如果您想要
onResponse
onFailure
回调,您基本上可以将
Payment
对象包装到
Result
,其中
Result
具有这两个属性。如果您使用
改型2:adapter-rxjava2
它会自动将API调用包装到
冷可观察
,并在订阅时自动执行
API请求
,那么您的最终可观察对象将是
可观察
,其中每个事件的类型将是
结果

subscribeOn
observeOn
正在执行呼叫吗

它不执行调用API,当您调用
subscribe
时,它会使您的API请求在
后台线程中运行,并在
主线程中处理响应

如何设置onResponse和onFailure回调

subscribe
方法中,您可以传递
消费者
来处理
响应
错误

view_model.payments_rx?.subscribe({
 // response
}, {
 // error
})

如果您使用
reformation2:adapter-rxjava2
它会自动将API调用包装到
Cold Observable
并在订阅时自动执行
API请求

subscribeOn
observeOn
正在执行呼叫吗

它不执行调用API,当您调用
subscribe
时,它会使您的API请求在
后台线程中运行,并在
主线程中处理响应

如何设置onResponse和onFailure回调

subscribe
方法中,您可以传递
消费者
来处理
响应
错误

view_model.payments_rx?.subscribe({
 // response
}, {
 // error
})

您的api调用是否正确?你有什么问题?@CôngHả我把帖子发了是不是你的api调用?你有什么问题?@CôngHả我在我的接口中设置了post,getPostsV2()的返回类型是可观察的,我的问题是如何对suscribe方法执行一些操作。顺便说一句,感谢Result insight。在我的界面中,getPostsV2()的返回类型是可观察的,我的问题是如何对suscribe方法执行一些操作。谢谢你的结果。
view_model.payments_rx?.subscribe({
 // response
}, {
 // error
})