从未使用toSortedList()和groupBy()

时间:2016-02-24 20:10:27

标签: android rx-java kotlin rx-android rx-kotlin

我目前正在使用Android-ReactiveLocation Library(Github)。 LastKnownLocationObservableCode)按预期工作。我使用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?) {

    }
}

0 个答案:

没有答案