【问题标题】:Google Map View is leaking very much谷歌地图视图泄漏非常多
【发布时间】:2016-09-05 19:09:42
【问题描述】:

我以前使用过 MapFragment,但它对于我的需要来说速度很慢。 MapView 几乎是即时的,完全符合我的需求。但他们都有一个共同点:

大量内存泄漏。 我已经像退出活动时那样“破坏”了 MapView,但它仍然泄漏。 MapView处于一个频繁打开关闭又快速打开的Activity。会不会是这个问题?

以下是我的 hprof 文件的一些屏幕截图(由于可能包含敏感信息,我宁愿不上传 hprof 文件):

我有多个泄漏,它们都指向相同的类。

但是,我正在使用自定义类,此时不需要,我将恢复为默认 MapView。

【问题讨论】:

  • 你应该重复使用你的 MapView,而不是继续重新创建一个。
  • 怎么样? MapView 在活动布局中,我应该在我的 onCreate 方法中使用 mapView.onCreate(savedInstanceState) 吗?
  • 知道了,做了一些调查,因为它看起来很有趣。报告了一些关于 MapView 泄漏的错误(例如 code.google.com/p/gmaps-api-issues/issues/detail?id=8111 )。如果您实际上正在适当地处理视图,它看起来可能是一个错误。

标签: android google-maps memory-leaks


【解决方案1】:

我不确定是不是这样,但我使用 Kotlin 做了一些愚蠢的事情。 Kotlin 获得了 null-safety。

googleMapView?.onDestroy()

我在 Fragment 的onDestroy() 中调用了它。你猜怎么了? googleMapView 为空,这就是为什么它没有将其称为onDestroy()!浪费了大约 2 个小时,因为我认为我的一些自定义类保留了导致此问题的引用或其他东西......

【讨论】:

    猜你喜欢
    • 2011-11-18
    • 1970-01-01
    • 1970-01-01
    • 2018-08-23
    • 2010-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多