【发布时间】:2019-08-23 09:36:23
【问题描述】:
我有一个数据模型列表,所以我必须应用一个返回视图的方法。
当一切都计算完毕后,我必须启动一个方法,它会进行另一种类型的计算。
问题是,正如我所拥有的那样,在第二种方法的每次迭代中都会启动。(肯定我错过了什么或做错了,但我对 RX 的了解非常低)
是否可以为每个方法进行所有计算,完成后,只启动该方法一次?
val markersViewList = hashMapOf<String, View>()
val subscription = Observable.fromIterable(retrivedUserInfoList)
.subscribeOn(Schedulers.computation())
.observeOn(AndroidSchedulers.mainThread())
.map { userInfo ->
val markerLayout = setupUpForMarkerLayout(userInfo)
if (markerLayout != null) {
if (userInfo.userId == owner.uid) { //is owner
markerViewList[OWNER] = markerLayout
} else {
if (!markerViewList.containsKey(userInfo.data1)) {
markerViewList[userInfo.data1] = markerLayout
}
}
}
}
.subscribe {
//THIS IS THE METHOD THAT ONLY HAS TO BE CALCULATED ONCE
createImages(retrivedUserInfoList,markerViewList)
}
addSubscription(subscription)
【问题讨论】:
标签: android kotlin iteration rx-java