我们正试图在我们的Android应用程序中追踪GoogleMap上发生的内存泄漏,该应用程序在大约40-50个设备轮换后以OOM结束.地图设置为3500个标记.
该应用程序的minSDK为9,因此使用V4支持库中的SupportMapFragment.
我们尝试过多种方法,包括:
分析MAT中的内存转储表明我们积累了大量的实例
com.google.android.gms.location.internal.LocationClientHelper$ListenerTransport
,我们不知道它们来自哪里.
任何人都知道这个内存泄漏的原因是什么?
以下代码已删除所有标记和侦听器,但仍然存在泄漏.首先是基类:
public abstract class BaseMapFragment extends Fragment {
public static final int MENU_ITEM_ID_SEARCH= 102;
public static final int MENU_ITEM_ID_SHOW_LIST= 100;
public static final int ZOOM_LEVEL_DEFAULT= 14;
private static final String SAVED_INSTANCE_LATITUDE= "savedLatitude";
private static final String SAVED_INSTANCE_LONGITUDE= "savedLongitutde";
private static final String SAVED_INSTANCE_ZOOM= "savedZoom";
protected static final String CLASSTAG= BaseMapFragment.class.getSimpleName();
private GoogleMap mMap;
private CameraUpdate mResumeCameraUpdate= null;
private double mSavedLatitude;
private double mSavedLongitude;
private float …Run Code Online (Sandbox Code Playgroud) android google-maps memory-leaks google-maps-android-api-2 supportmapfragment