小编eVo*_*sic的帖子

在Groovy中使用递归嵌套映射合并映射

我想知道是否有人可以轻松地将2个深嵌套地图合并在一起?

例如,我想得到:

[
    "a" : "1",
    "animals" : ["cat" : "blue"]
] + [
    "b" : 2,
    "animals" : ["dog" : "red"]
] == [
    "a" : 1,
    "b" : 2,
    "animals" : [
        "cat" : "blue",
        "dog" : "red"]
]
Run Code Online (Sandbox Code Playgroud)

有人有简单的解决方案吗?

java groovy

12
推荐指数
2
解决办法
3245
查看次数

RxAndroid在相机更改时去抖谷歌地图

我有一个应用程序,它使用谷歌地图和听相机更改.我的问题是,在每次摄像机更换时,我都要请求我的后端.我想要做的只是通过使用RxAndroid/Java去抖动来限制请求的数量.

我的代码看起来像这样:

Observable.create(new Observable.OnSubscribe<CameraPosition>() {
        @Override
        public void call(Subscriber<? super CameraPosition> subscriber) {
            if (!subscriber.isUnsubscribed()) {
                map.setOnCameraChangeListener(new GoogleMap.OnCameraChangeListener() {
                    @Override
                    public void onCameraChange(CameraPosition cameraPosition) {
                        subscriber.onNext(cameraPosition);
                    }
                });
            }
        }
    }).subscribeOn(AndroidSchedulers.mainThread())
            .observeOn(AndroidSchedulers.mainThread())
            .onErrorResumeNext(Observable.<CameraPosition>empty())
            .debounce(1, TimeUnit.SECONDS)
            .subscribe(cameraPosition -> {
                final LatLngBounds item = map.getProjection().getVisibleRegion().latLngBounds;

                homeActionBarActivity.getNMB().getRide().list(
                        item.southwest.latitude,
                        item.southwest.longitude,
                        item.northeast.latitude,
                        item.northeast.longitude)
                        .subscribeOn(Schedulers.newThread())
                        .observeOn(AndroidSchedulers.mainThread())
                        .onErrorResumeNext(Observable.<List<Ride>>empty())
                        .subscribe(new Action1<List<Ride>>() {
                            @Override
                            public void call(List<Ride> rides) {

                                clearRidePointsFromMap();

                                for (Ride ride : rides) {
                                    if (isAdded())
                                        addRideStartPointToMap(ride);
                                }

                            }
                        });
            });
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我强制使用MainThread(subscribeOn和observeOn),但我仍然得到这个错误"不在主线程上".

这里的堆栈跟踪:

01-27 10:59:24.049    3049-3066/com.nousmotards.android E/AndroidRuntime? …
Run Code Online (Sandbox Code Playgroud)

java android google-maps rx-android

5
推荐指数
1
解决办法
1565
查看次数

标签 统计

java ×2

android ×1

google-maps ×1

groovy ×1

rx-android ×1