package org.osmdroid.bugtestfragments; import org.osmdroid.samplefragments.BaseSampleFragment; import org.osmdroid.util.GeoPoint; import org.osmdroid.views.overlay.Marker; /** * created on 1/7/2017. * * @author Alex O'Ree */ public class Bug512Marker extends BaseSampleFragment { Marker marker = null; @Override public String getSampleTitle() { return "Bug 512 Marker infowindow leaks"; } @Override public void addOverlays(){ super.addOverlays(); marker = new Marker(mMapView); marker.setSnippet("Hello world, bug 512 part 1"); marker.setPosition(new GeoPoint(-40d,-74d)); mMapView.getController().setCenter(marker.getPosition()); mMapView.getOverlayManager().add(marker); } public void runTestProcedures() throws Exception { getActivity().runOnUiThread(new Runnable() { @Override public void run() { marker.showInfoWindow(); } }); Thread.sleep(500); getActivity().runOnUiThread(new Runnable() { @Override public void run() { marker.closeInfoWindow(); mMapView.getOverlayManager().remove(marker); marker.onDetach(mMapView); marker = new Marker(mMapView); marker.setSnippet("Hello world, bug 512 part 2"); marker.setPosition(new GeoPoint(-40d,-74d)); mMapView.getController().setCenter(marker.getPosition()); mMapView.getOverlayManager().add(marker); } }); Thread.sleep(500); getActivity().runOnUiThread(new Runnable() { @Override public void run() { marker.showInfoWindow(); } }); Thread.sleep(500); getActivity().runOnUiThread(new Runnable() { @Override public void run() { marker.closeInfoWindow(); mMapView.getOverlayManager().remove(marker); marker.onDetach(mMapView); } }); } }