1

Ich verwende MapView ver. 10.0.1. Ich erhalte ein Speicherleck MapView enthält einen Aktivitätskontext.
LeakCanary Spur:MapView wird beibehalten Kontext verursacht Speicherverlust

com.demo.app.ui.main.MainActivity has leaked: 
GC ROOT wl.a 
references oo.a 
references maps.ad.L.g 
references maps.ad.V.c 
references maps.D.i.a 
references maps.D.p.mParent 
references android.widget.FrameLayout.mParent 
references com.google.android.gms.maps.MapView.mContext 
leaks com.demo.app.ui.main.MainActivity instance 

Antwort

2

Das Leck wird höchstwahrscheinlich kommen von Google Maps weiterhin Ihren aktuellen Standort verfolgen (wenn Sie es haben festgelegt). Fügen Sie Ihrem onDestroy also folgendes hinzu:

@Override 
public void onDestroy() { 

    if (mMapView != null) { 
     mMapView.onDestroy(); 
    } 

    //Clean up resources from google map to prevent memory leaks. 
    //Stop tracking current location 
    if(mGoogleMap != null) { 
     mGoogleMap.setMyLocationEnabled(false); 
    } 
    super.onDestroy(); 
} 
Verwandte Themen