【问题标题】:android memory leaks points are not clear!android内存泄漏点不清楚!
【发布时间】:2011-05-09 19:07:06
【问题描述】:

朋友,

我已阅读有关避免 android 内存泄漏的完整文章。 http://developer.android.com/resources/articles/avoiding-memory-leaks.html

现在

1) 我使用的不是静态的私有嵌套类

如果我将嵌套类设为静态,它会有用吗?

2) 文章说 如果您要使用内部类或匿名类,请仔细考虑。在您非常确定并且可以证明它们不会导致内存泄漏之前,请勿使用匿名类。

谁能给我一个例子?哪种方法好,哪种方法不利于内存泄漏。

任何帮助将不胜感激。

【问题讨论】:

  • 我对此表示赞同,我多次阅读这篇文章,但仍然不确定我应该做些什么来防止我的应用程序泄漏。我是否必须保留对应用程序中每个可绘制对象的引用并将其回调设置为 null?我该怎么办,鉴于这个主题的重要性,这篇文章确实应该提供更多示例。
  • 是的,我也很困惑,例子不够清楚,需要更多解释。

标签: android


【解决方案1】:

1) 我一般会避免使用静态类。特别是如果您需要传入 Context 指针,因为这会导致泄漏。除非您的静态类有常量,否则它们类似于全局变量,并且有点绕开了旨在解耦活动的 Android 架构。

特别是您不想将 Drawable 实例或 Android 框架对象声明为静态的。这会扰乱他们的生活。

2) 我没有看到任何关于匿名类的问题。在某些情况下,您可能能够泄漏 Context 变量,但这在单个线程上很难做到。在传递上下文时,您可以使用 getApplicationContext() 来限制泄漏,它会返回不会泄漏的全局上下文。

希望这会有所帮助!

【讨论】:

猜你喜欢
  • 2011-11-14
  • 2011-02-18
  • 1970-01-01
  • 2021-07-13
  • 2011-12-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多