我之前使用过MapFragment,但是我的需求很慢。 MapView几乎可以立即满足我的需求。但是他们都有一个共同点:
巨大的记忆泄漏。 我被摧毁了#39;像我一样退出活动时它应该是MapView,它仍然会泄漏。 MapView处于一个经常打开和关闭并再次快速打开的活动中。这可能是问题吗?
以下是我的hprof文件的一些screeenshots(由于可能的敏感信息,我不想上传hprof文件):
我有多次泄漏,他们指的是同一个类。
但是,我使用的是自定义类,此时此刻不需要,我将恢复为默认的MapView。
答案 0 :(得分:1)
我不确定是不是这样,但我使用Kotlin做了一些愚蠢的事。 Kotlin得到了无效安全。
googleMapView?.onDestroy()
我在片段的onDestroy()
中打电话给我。你猜怎么着? googleMapView为空,这就是为什么它没有调用它onDestroy()
!在这上面浪费了大约2个小时,因为我认为我的一些自定义类保留了引用或导致这个的其他东西...