当前位置: 首页 > 面试题库 >

android地图,标记和内存泄漏

毛缪文
2023-03-14
问题内容

我正在阅读android docs
http://developer.android.com/reference/com/google/android/gms/maps/MapFragment.html
,我碰到了这句话:

从GoogleMap获得的所有对象都与该视图相关联。重要的是不要在视图的生命周期之内保留对象(例如Marker)。否则将导致内存泄漏,因为无法释放视图。

我不完全了解这一点,也不确定它是否适用于我,但我只想检查:这仅适用于在主视图仍然存在的情况下碎片被销毁的情况,对吗?我的地图片段是该布局xml中的唯一元素,因此我假设当用户离开时,标记对象(以及所有其他对象)被破坏了。我是对的,还是相反?


问题答案:

如果查看片段的生命周期,您会发现在片段仍然存在时,视图可能会被破坏。它也可以在破坏片段之前重新创建视图。这只是意味着您应该清除并在onCreateView和onDestroyView回调中创建所有标记。如果您使用这些回调进行标记操作,则应该没问题。



 类似资料:
  • 我担心从泄漏金丝雀回来的信息。它显示了在UI上声明的所有变量,如片段中的材料按钮、材料卡片视图、文本视图、图像视图等,都导致了内存泄漏。我不知道为什么会这样。

  • 我在继续我的游戏超过8次后,我得到了OutOfMemory错误,因为堆逐渐填充。在使用MAT分析我的游戏堆时,我知道以下2个原因: 关键词Android.Graphics.Bitmap Byte[] 关键词java.lang.Object[]Android.content.res.resources 请提出解决方案

  • 我在SupportMapFragmet上阅读了这篇文档,它说: 从GoogleMap获得的任何对象都与视图相关联。重要的是不要持有超出视图生命周期的对象(例如标记)。否则会导致内存泄漏,因为视图无法释放。 我对此有点困惑,因为没有办法修改,除非您持有它们的引用,就像这里的许多问题所说的那样(像这样和这样)......所以我错过了什么吗? 我目前正在使用哈希映射将我的标记与其他对象关联起来,我看不出

  • 我有一个创建Presenter实例的活动。在Presenter层中,我从存储库中获取一个可观察的实例。然后,我使用Subscriber的子类订阅Observable,然后将结果订阅对象添加到CompositeSubscription。因为调用订阅服务器的onNext()后,我需要修改活动,所以我还将Presenter的引用传递给订阅服务器。 现在,我想知道引用是如何工作的,什么时候才有资格进行垃圾

  • 问题内容: 我认为我的android应用正在泄漏内存。我不是绝对确定这是问题所在。 应用程序打开时经常崩溃,并且logcat尝试加载位图图像时会显示“内存不足”异常。 崩溃后,我重新打开了该应用程序,它运行正常。Logcat会显示许多“ gc”,并且JIT表会不时地向上调整大小,而不会向下调整,直到应用程序因内存不足错误而崩溃。 这听起来像是内存泄漏吗?如果是这样,我该如何定位和关闭泄漏点。 这是

  • 问题内容: 在多个帖子中都提到了这一点:不当使用会导致内存泄漏。我正在努力了解使用内存泄漏将如何发生。 我发现的唯一情况如下: Web服务器维护一个线程池(例如,用于servlet)。如果未删除其中的变量,则这些线程可能会导致内存泄漏,因为线程不会死亡。 这种情况下没有提到“ Perm Space”内存泄漏。那是内存泄漏的唯一(主要)用例吗? 问题答案: PermGen的exhaustions 与