我目前正在使用Android-ReactiveLocation Library(Github)。 LastKnownLocationObservable
(Code)按预期工作。我使用flatMap
从数据库中获取附近的站点(因为领域)我正在从数据中创建模型。所以我有一个项目列表,我在flatMap
Observable.from(data)
创建新的Observable。
然后我想对位置进行排序,过滤它们并将它们分组。
.toSortedList()
.flatMap { Observable.from(it) }
.filter { it.distance <= (maxDistance.toDouble() * 1000) }
.groupBy { //Group the stations in categories
if (it.distance <= maxDistance && it.favorite) {
"nearbyFavorite"
} else if (it.favorite) {
"outOfReachFavorite"
} else {
"nearby"
}
}
但是,当我订阅Observable时,永远不会调用onComplete。 Observable只停留在toSortedList()
。
订阅:
.subscribe(object: Subscriber<GroupedObservable<String, NearbyLocationItem>>() {
override fun onNext(p0: GroupedObservable<String, NearbyLocationItem>?) {
val locationItems = ArrayList<NearbyLocationItem>()
p0.subscribe { loc ->
locationItems.add(loc)
}
locations.put(p0.key, locationItems)
}
override fun onCompleted() {
Log.d(javaClass.simpleName, "Never called")
}
override fun onError(p0: Throwable?) {
}
}