我正在制作一个android应用程序,并尝试将Map Marker添加到地图(如果这是第一个api调用),或者只是重新设置标记的位置。我正在使用RxJava2重复调用API。问题是我无法检查它是否是第一个API调用,因为不允许我访问非最终布尔值。
boolean firstReposition = true;
//Create position call
ISSPositionService service = ServiceGenerator.createService(ISSPositionService.class);
//create observable
Observable<ISSPositionData> issPositionCall = service.getPosition();
Disposable disposable = issPositionCall.subscribeOn(Schedulers.io())
.repeatWhen(completed -> completed.delay(30, java.util.concurrent.TimeUnit.SECONDS))
.observeOn(AndroidSchedulers.mainThread())
.subscribe(positionData -> {
LatLng currentIssPosition = new LatLng(positionData.getIssPosition().getLatitude(), positionData.getIssPosition().getLongitude());
if (firstReposition) {
issMarkerOptions.position(currentIssPosition);
map.addMarker(issMarkerOptions);
firstReposition = false;
}
else {
issMarker.setPosition(currentIssPosition);
}
//animate camera so it shows current position
map.animateCamera(CameraUpdateFactory.newLatLng(currentIssPosition));
});
我该如何重写代码,以便能够检查和设置布尔值?