java - Google map Android v2 - 检测标记 InfoWindow 关闭

标签 java android google-maps

现在,我有一些标记,单击这些标记后,就会开始在后台自动刷新其信息窗口的内容。

问题是,一旦用户关闭信息窗口(例如单击 map 上的其他位置),后台任务仍然会继续。

有没有办法检测标记信息窗口何时关闭,以便我可以关闭任务?

最佳答案

您一次只能打开一个 InfoWindow,这意味着您可以跟踪打开的那个:

mMap.setInfoWindowAdapter(new GoogleMap.InfoWindowAdapter() {
    @Override
    public View getInfoWindow(Marker marker) {
        Log.e(TAG, "Info window requested for " + marker);
        mLastMarker = marker;
        return null; // Returning null will load the default InfoWindow
    }

    @Override
    public View getInfoContents(Marker marker) {
        return null;
    }
});

现在,在每个 map 上单击,您可以检查特定标记上的任务是否仍在运行:

mMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
    @Override
    public void onMapClick(LatLng latLng) {
        if (mLastMarker != null) {
            mLastMarker = null;
            // Stop task
        }
    }
});

如果需要,您还可以在更改 InfoWindow 时停止任务:

@Override
public View getInfoWindow(Marker marker) {
    if (mLastMarker != null) {
        // Stop task for mLastMarker
    }

    Log.e(TAG, "Info window requested for " + marker);
    mLastMarker = marker;
    return null; // Returning null will load the default InfoWindow
}

关于java - Google map Android v2 - 检测标记 InfoWindow 关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29519202/

相关文章:

java - ant卸载android包

android - 与通用 map 相比,MapView 的分辨率较差

javascript - Meteor 模板异步渲染 - 无法读取 null 的属性 'offsetWidth'

java - 如何在这里获取 "What' s?”来自纬度和经度的信息?

javascript - Google map 中自定义标记的编号

java - 如何在一个方法中实现等待另一个方法在java中完成?

java - 从四叉树中提取元素

java - java中的变量继承

android - Dagger 未在 Android 中初始化注入(inject)字段

android - 失控的ListView