1

我正在使用 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
4

1 回答 1

4

泄漏很可能来自谷歌地图继续跟踪您当前的位置(如果您设置了它)。因此,将以下内容添加到您的 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();
}
于 2017-04-05T16:55:00.153 回答