Android GoogleMaps缓慢onMapClick响应

时间:2016-12-19 11:25:29

标签: android google-maps

我在onMapReady()方法中为GoogleMap对象设置了一个点击监听器(GoogleMap.OnMapClickListener)。

@Override
public void onMapReady(GoogleMap map) {
    addClickListener(map);
}

这是addClickListener():

private void addClickListener(GoogleMap map) {
    map.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
        @Override
        public void onMapClick(LatLng point) {
            Log.d("ON_MAP_CLICK", "1. OnMapClick called");
            handleOnMapClick(point);
        }
    });
}

由于我在onMapReady方法中设置了地图,因此我也可以在那里添加点击监听器。

问题在于点击地图的延迟和注册该点击的代码大约是1秒,而应该是即时的。

问题:问题不在于调用addClickListener(GoogleMap)所需的时间,而是onMapClick()在地图上注册点击的时间(大约1秒)。

为什么这么慢?

我正在使用GoogleMap V2

谢谢!

2 个答案:

答案 0 :(得分:0)

很明显,在1秒后调用addClickListener方法,因为只有在初始化地图后才会调用onMapReady回调。因此,最初调用addClickListener方法需要一些延迟。

所以你只会第一次看到这种延迟而不是所有的时间,它会像预期的那样工作,你的代码不需要改变

答案 1 :(得分:0)

onMapReady将在初始化地图后调用,我有一个项目需要一段时间来加载地图,使所有功能“慢”。 您可以尝试先加载地图,以防止将其添加到Splashscreen或Activity。

new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    MapView mv = new MapView(getApplicationContext());
                    mv.onCreate(null);
                    mv.onPause();
                    mv.onDestroy();
                }catch (Exception ignored){

                }
            }
        }).start();