Android 我一直收到一个空值,尽管给它赋值

Android 我一直收到一个空值,尽管给它赋值,android,google-maps,kotlin,retrofit2,rx-java2,Android,Google Maps,Kotlin,Retrofit2,Rx Java2,我想将API响应分配给Kotlin中的全局数组列表,但在HandlerResponse函数之外,arraylist仍然为null var一次性:一次性?=无效的 lateinit var mMap:GoogleMap var sensorsData=ArrayList() 问题在于showReading和mapFragment.getmapsync是两个异步调用,因此无法保证哪一个将首先完成。处理这一问题的最快方法是同时启动它们,等待它们完成,然后采取行动 如果要使用反应流范例,可以执行以下操作

我想将API响应分配给Kotlin中的全局数组列表,但在HandlerResponse函数之外,arraylist仍然为null var一次性:一次性?=无效的 lateinit var mMap:GoogleMap var sensorsData=ArrayList()


问题在于
showReading
mapFragment.getmapsync
是两个异步调用,因此无法保证哪一个将首先完成。处理这一问题的最快方法是同时启动它们,等待它们完成,然后采取行动

如果要使用反应流范例,可以执行以下操作:

  Single.create<GoogleMap> { emitter ->
            map.getMapAsync { emitter.onSuccess(it) }
        }.zipWith(sensorData(token), BiFunction<GoogleMap, SensorNode, Unit> { map, node -> 
            //do what you want with map and sensordata
        })
        .subscribeOn(Schedulers.io())
        .observeOn(AndroidSchedulers.mainThread())
        .subscribe(this::handleResponse)
Single.create{emitter->
map.getMapAsync{emitter.onSuccess(it)}
}.zipWith(传感器数据(令牌),双功能{map,节点->
//使用地图和传感器数据执行所需操作
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.订阅(此::HandlerResponse)

问题在于
showReading
mapFragment.getmapsync
是两个异步调用,因此无法保证哪一个将首先完成。处理这一问题的最快方法是同时启动它们,等待它们完成,然后采取行动

如果要使用反应流范例,可以执行以下操作:

  Single.create<GoogleMap> { emitter ->
            map.getMapAsync { emitter.onSuccess(it) }
        }.zipWith(sensorData(token), BiFunction<GoogleMap, SensorNode, Unit> { map, node -> 
            //do what you want with map and sensordata
        })
        .subscribeOn(Schedulers.io())
        .observeOn(AndroidSchedulers.mainThread())
        .subscribe(this::handleResponse)
Single.create{emitter->
map.getMapAsync{emitter.onSuccess(it)}
}.zipWith(传感器数据(令牌),双功能{map,节点->
//使用地图和传感器数据执行所需操作
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.订阅(此::HandlerResponse)

您何时调用HandlerResponse方法?可能在onMapReady之前在数组中插入项之前先执行了onMapReady,您何时调用HandlerResponse方法?可能在onMapReady之前在数组中插入项之前先执行onMapReady