【发布时间】:2015-04-08 15:39:39
【问题描述】:
现在我有一些标记,当点击这些标记时,会开始在后台自动刷新其信息窗口的内容。
问题是,一旦用户关闭信息窗口(例如单击地图上的其他位置),后台任务仍会继续。
有没有办法检测标记信息窗口何时关闭,以便我可以关闭任务?
【问题讨论】:
标签: java android google-maps
现在我有一些标记,当点击这些标记时,会开始在后台自动刷新其信息窗口的内容。
问题是,一旦用户关闭信息窗口(例如单击地图上的其他位置),后台任务仍会继续。
有没有办法检测标记信息窗口何时关闭,以便我可以关闭任务?
【问题讨论】:
标签: java android google-maps
您一次只能打开一个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;
}
});
现在在每次地图点击时,您都可以检查特定标记上的任务是否仍在运行:
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
}
【讨论】:
您可以在地图上使用 setOnMapClickListener 并在 onMapClick 方法中检查任务是否仍在运行,如果是,则结束任务。
【讨论】: