Android 使用可观察的:RxJava+;改装+;仓库模式
我正在尝试为我的应用程序设置改型和rxjava,以便对Web服务进行api调用。我在订阅主活动中的可观察对象时遇到一些问题。该体系结构遵循viewmodel/repository模式,下面是我的代码 存储库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
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
})