Android 销毁视图(布局)

Android 销毁视图(布局),android,listview,memory-leaks,view,garbage-collection,Android,Listview,Memory Leaks,View,Garbage Collection,我现在正在与内存泄漏作斗争。所以我很好奇是否有办法手动销毁视图(在ActivityOnDestroy方法中)? 由于父子引用、上下文引用、标记等原因,整个布局(activity contentView)有点复杂 GC现在无法收集我的布局。问题隐藏在视图结构的深处。。。所以找到它的唯一方法是尝试手动销毁叶视图,这样GC会在某个时刻收集根视图,并告诉我问题所在的位置 我的布局结构:ViewFlipper(RelativeLayout,ListView)(ViewFlipper(RelativeLay

我现在正在与内存泄漏作斗争。所以我很好奇是否有办法手动销毁视图(在ActivityOnDestroy方法中)? 由于父子引用、上下文引用、标记等原因,整个布局(activity contentView)有点复杂

GC现在无法收集我的布局。问题隐藏在视图结构的深处。。。所以找到它的唯一方法是尝试手动销毁叶视图,这样GC会在某个时刻收集根视图,并告诉我问题所在的位置


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

您的视图中是否有需要停止的处理程序/消息


我有一个类似的问题,我在一个视图中定期发送消息来制作动画。触发activity OnDestroy()后,我需要停止/忽略消息并再次停止排队。

您可以从视图组中删除视图,但无法手动销毁视图。如果出现内存泄漏,通常是因为在视图之外持有对上下文的长期引用

  • 不要在静态字段中存储任何具有上下文的内容(例如,可绘制内容-位图可以)
  • 删除所有处理程序,清除所有计时器
  • 不要在线程/异步任务中保留上下文,或者确保它们是弱引用的

  • 视图包含与其他视图(即另一个视图的上下文)相关的信息是可以的,因为所有视图都被破坏了——这很可能是因为上下文被某个无法释放内存的东西(并且上下文对大多数东西都有句柄,即您的所有视图)占用了。

    是的,我知道你的问题是关于强制释放视图,但我不知道这是否可行。至少,我从未见过任何公开的内存管理调用。我希望有。请停止在标题中写标签。