У меня есть приложение для Android с MapView, и оно работает непрерывно в течение нескольких часов при минимальном взаимодействии с пользователем на его телефонах.Я обнаружил, что через некоторое время с MapView может случиться что-то, что сделает его полностью непригодным для использования.
Приложение не падает, и карта все еще там, но кажется, что она повреждена.Сжатие / прокрутка карты заставляет плитки трястись и летать, а маркеры отскакивают случайным образом.Звучит ли это как что-то, с чем кто-либо сталкивался?
edit: следующий код запускается примерно каждые 10 секунд:
public void updateMarkers(boolean centerMap)
{
log("updateMarkers(" + centerMap + ")");
int vehicLat = (int) (AppState.getLatitude() * 1e6);
int vehicLng = (int) (AppState.getLongitude() * 1e6);
GeoPoint vehiclePoint = new GeoPoint(vehicLat, vehicLng);
List<Overlay> currentOverlays = mapView.getOverlays();
if(!currentOverlays.isEmpty())
{
currentOverlays.clear();
mapView.postInvalidate();
}
Drawable drawable = getResources().getDrawable(R.drawable.car);
MapOverlay iconOverlay = new MapOverlay(drawable, this);
OverlayItem iconPoint = new OverlayItem(vehiclePoint, "", "");
iconOverlay.addOverlay(iconPoint);
currentOverlays.add(iconOverlay);
if(centerMap)
{
mapController.setCenter(vehiclePoint);
mapController.setZoom(17);
}
mapView.postInvalidate();
}