Android RxJava和Observable上的改型API调用
我是RxJava新手,想了解可观察的。因此,我使用改造进行了一次API调用,并观察结果的变化,因此我的问题是:Android RxJava和Observable上的改型API调用,android,rx-java,android-livedata,Android,Rx Java,Android Livedata,我是RxJava新手,想了解可观察的。因此,我使用改造进行了一次API调用,并观察结果的变化,因此我的问题是: 它是否进行持续API调用以从服务器获取最新结果 如果是,那么它多久打一次电话 是一次电话吗?那么观察数据有什么用呢 如果只调用一次,那么我们应该使用RxJava来保存代码中的几行代码吗?在这种情况下,我们可以简单地使用实时数据 它是否在活动的每个生命周期调用一次,即(如果活动被终止并再次打开,那么它将获取新结果?) 以下是一段代码片段: // fetching list of reci
// fetching list of recipes
mRecipeListViewModel.getRecipes().observe(this, new Observer<List<Recipe>>() {
@Override
public void onChanged(@Nullable List<Recipe> recipes) {
// showing list of recipes
}
});
//获取配方列表
mRecipeListViewModel.getRecipes().observe(这是一个新的观察者(){
@凌驾
更改后的公共void(@Nullable List recipes){
//显示食谱列表
}
});
那是。。。有很多问题
Single
而不是Observable
,因为API将返回结果并结束调用,因此在该场景中使用Observable没有任何意义(Single就是…一个结果或错误)- 如果您有一个API,它返回一个“
”列表,比如事物
,您可能会认为它在您的服务类中是列表
。那就行了。但这不是它的工作原理;API可能会发送一个数组(这就是为什么它是一个列表),所以实际上,它必须看起来像可观察的getThings()
,所以当您订阅时,它看起来像(这是伪代码):Observable getThings()
onError
onNext
和onComplete
如果你看OnNext
它看起来像OnNext(列出事物)
那么,从可观测到的每一个发射,都是一个列表,而不是你最初认为的:“OnNext(事物)
这样你就可以将事物
添加到列表中
这不是它的工作方式。如果您的API返回一个事物列表…您可能希望将其声明为:
Single
,因为您的订阅基本上有2种方法,而不是3种:
onError
和onSuccess(列出事物)
(如果名称不是100%准确,我表示歉意,我已经好几年没有接触过RX了)。因此,API要么返回列表,要么返回错误,没有空值,没有下一个,没有完整;一旦获得列表,您的订阅将不再发出
我希望这能帮助您更好地理解使用RxJava意味着什么(这是一项承诺!)当然,我添加了更多信息,以防您想更好地理解单个与可观察的区别。
api.getThing()
.blah()
.blah()
.subscribe(...)