Сохранение контекста MapView вызывает утечку памяти

Я использую MapView вер. 10.0.1. Я получаю утечку памяти. MapView содержит контекст активности.
LeakCanary след:

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

1 ответ

Утечка, скорее всего, происходит из-за того, что карты Google продолжают отслеживать ваше текущее местоположение (если оно установлено). Так что добавьте следующее в свой onDestroy()

@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();
}
Другие вопросы по тегам