Сохранение контекста 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();
}