【问题标题】:Fragment finalize not called片段最终确定未调用
【发布时间】:2013-11-21 21:36:00
【问题描述】:
public void onDestroy() {
}
protected void finalize() {
}

Finalize 是否总是被片段调用?

片段实例内部的字段呢?我必须在 onDestroy 中将它们设置为 null 以便它们被回收吗?

【问题讨论】:

  • 在大多数情况下,不用担心finalize() 与 Android 的关系,尤其是主要的 Android 组件(Activity、Fragment、Service 等)。在清理资源和垃圾收集等方面,操作系统被设计为非常高效。当操作系统确定不再需要某个特定对象时,这些工作都是在幕后完成的。
  • 我正在尝试诊断我的应用程序中的内存峰值。所以...我需要知道何时回收对象。
  • 我最好的方法是使用各种 Android SDK 工具。

标签: android


【解决方案1】:

我的理解是,finalize 方法是由垃圾收集器调用的,不能依赖于在给定时间调用。

这些帖子可能会让您更深入地了解:

我倾向于在 onPause 或 onDestroy 中进行清理。

【讨论】:

  • 取决于你所说的“清理”我不确定我是否建议在 onPause 中做很多事情,记住 onPause -> onResume -> onPause 周期是 Activity 或 Fragment 中最紧凑的生命周期。
猜你喜欢
  • 2012-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-24
  • 1970-01-01
  • 2014-01-20
  • 2015-12-12
  • 2021-10-19
相关资源
最近更新 更多