MapView v2保持环境 [英] MapView v2 keeping Context around

查看:163
本文介绍了MapView v2保持环境的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当使用最新的google maps API中的MapView时,我收到内存泄漏,因为MapView支持我的活动。



我使用了Leak Canary,并且有这样的追踪




D / LeakCanary:* GC ROOT com.google.android.gms.location.internal.ta



D / LeakCanary:*引用com.google.android.gms.location。 internal.sa



D / LeakCanary:*引用com.google.maps.api.android.lib6.dvc



< D / LeakCanary:*引用com.google.maps.api.android.lib6.d.aj.b



D / LeakCanary:*引用com.google。 maps.api.android.lib6.gmm6.cpa



D / LeakCanary:*引用com.google.maps.api.android.lib6.gmm6.cymParent

D / LeakCanary:*引用com.google .android.gms.maps.MapView.mContext

D / LeakCanary:*泄漏com.myapp.activities.main.AttractionDetailActivity实例






有没有人见过这个?

解决方案在你的onMapReady()回调函数中检查你是否正在调用 googleMap.setMyLocationEnabled(true)



如果你是那么你应该在你的onDestroy中调用 googleMap.setMyLocationEnabled(false)

When using the MapView from the latest google maps API, I am getting a memory leak because MapView is holding onto my activity.

I used Leak Canary and have this trace


D/LeakCanary﹕ * GC ROOT com.google.android.gms.location.internal.t.a

D/LeakCanary﹕ * references com.google.android.gms.location.internal.s.a

D/LeakCanary﹕ * references com.google.maps.api.android.lib6.d.v.c

D/LeakCanary﹕ * references com.google.maps.api.android.lib6.d.aj.b

D/LeakCanary﹕ * references com.google.maps.api.android.lib6.gmm6.c.p.a

D/LeakCanary﹕ * references com.google.maps.api.android.lib6.gmm6.c.y.mParent

D/LeakCanary﹕ * references android.widget.FrameLayout.mParent

D/LeakCanary﹕ * references com.google.android.gms.maps.MapView.mContext

D/LeakCanary﹕ * leaks com.myapp.activities.main.AttractionDetailActivity instance


Has anyone seen this before?

解决方案

Check if you are calling googleMap.setMyLocationEnabled(true) in your onMapReady() callback.

If you are then you should call googleMap.setMyLocationEnabled(false) in your onDestroy.

这篇关于MapView v2保持环境的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆