gpt4 book ai didi

android - 区分 initial call 和 next emits in flowable

转载 作者:行者123 更新时间:2023-11-30 00:06:15 24 4
gpt4 key购买 nike

我目前订阅了一个使用 RxJava2 的可流动方法假设我有一个订阅方法。

public Flowable<UploadStatus> getStatusChanges() 

我将首先调用以从数据库加载所有项目状态,因此基本上会在我的回收站 View 上加载所有项目。但是一旦我订阅了,我就会继续从那个可流动的事件中获取事件。我将从确定的项目中获取个别更改,例如更改确定的项目。

我如何区分初始加载中的个别更改?

最佳答案

假设您将结果包装到这样的类中:

class Wrapper {
public boolean firstLoad;
public UploadStatus uploadStatus;

//constructor omitted for brevity
}

你可以这样做:

getStatusChanges()
.map(item -> Wrapper(false, item))
.startWith(Wrapper(true, null)
.subscribe(result -> {
if(result.firstLoad) {
//show spinner
} else {
//handle normaly
}
})

另一种方法(改编 self 的回答 here )是使用发布。

getStatusChanges().publish(items -> items.first().map(item -> Wrapper(true, item)).concatWith(items.skip(1).map(item -> Wrapper(false, item))))

关于android - 区分 initial call 和 next emits in flowable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48951140/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com