从Observable获得结果 - Kotin Android

时间:2017-09-27 14:25:12

标签: android kotlin observable

我有一个方法,它返回Observable,如下所示:

fun currentLocation(): Observable<LatLngFix> {
    if (GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(context) != ConnectionResult.SUCCESS ||
            !context.isLocationPermissionGranted()) {
        return getDefaultLocation()
    }

    // lastKnownLocation returns location or complete without result
    // in the latter case, return default unknown location
    return Observable
            .concat(locationProvider.lastKnownLocation.map {
                val latLng = LatLngFix(it.latitude, it.longitude)
                return@map latLng
            }, getDefaultLocation())
            .onErrorResumeNext { getDefaultLocation() }
            .first()
}

然后当我调用这个函数时,我想得到latlng变量。所以我需要明确订阅Observable,但不知道原因,以下是错误:

localisationService.currentLocation().subscribe(latLng -> {

})

说没有定义latLng。检索价值的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

应该是

localisationService.currentLocation().subscribe { latLng ->

}

(注意大括号内的latLng参数)

localisationService.currentLocation().subscribe ({ latLng ->

}, 
{ error -> 
})

如果您还想实施onError