gpt4 book ai didi

android - 销毁 View (布局)

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:07:12 27 4
gpt4 key购买 nike

我现在正在与内存泄漏作斗争。所以我很好奇是否有任何方法可以手动销毁 View (在 Activity onDestroy 方法中)?整个布局(activity contentView)有点复杂,因为有父子引用、上下文引用、标签等。

GC 现在无法收集我的布局。问题深藏在 View 结构中……所以找到它的唯一方法是尝试手动销毁叶 View ,这样 GC 会在某个时刻收集 Root View 并告诉我问题出在哪里。

我的布局结构:ViewFlipper(RelativeLayout, ListView(ViewFlipper(RelativeLayout, RelativeLayout)))

最佳答案

您可以从 ViewGroup 中删除一个 View,但是无法手动销毁一个 View。如果您遇到内存泄漏,通常是因为您持有对 View 之外的上下文的长期引用。

  1. 不要在静态字段中存储任何具有上下文的内容(即 Drawables - 位图就可以)
  2. 删除所有处理程序,清除所有计时器
  3. 不要紧抓 Threads/AsyncTasks 中的上下文,或者确保它们是弱引用的。

View 包含与其他 View (即另一个 View 的上下文)相关的信息是没问题的,因为所有 View 都被销毁了——这很可能是因为上下文被某些东西保留(并且上下文有一个句柄大多数事情 - 即您的所有 View )您无法释放内存。

关于android - 销毁 View (布局),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5419224/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com