2010-11-14 51 views
7

朋友,android内存泄漏点不清楚!

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

现在

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

如果我作出这样的嵌套类的静态这将是有用的?

2)文章说 如果您即将使用内部类或匿名类仔细思考。除非您非常确定并且可以证明它们不会导致内存泄漏,否则不要使用匿名类。

任何一个可以给我的例子吗?哪一个是好方法,哪一个对内存泄漏不利。

任何帮助,将不胜感激。

+0

我第二次,我多次阅读文章,我仍然不确定我应该怎么做,以防止我的应用程序泄漏。我是否必须在我的应用程序中保留对每个drawable的引用并将其回调设置为空?我该怎么做,这篇文章应该提供更多的例子,说明这个主题有多重要。 – marchinram 2010-11-14 17:41:52

+0

是的,我也很困惑,例子不够清楚,需要更多解释。 – UMAR 2010-11-16 07:48:56

回答

1

1)我会避免使用一般的静态类。特别是如果你需要传递上下文指针,因为这会导致泄漏。除非静态类具有常量,否则它们类似于全局变量,并且有意避开旨在将活动分离的Android体系结构。

特别是你不想声明可绘制实例或Android框架对象为静态。这破坏了他们的一生。

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

希望这会有所帮助!

+0

另请参阅此主题:http://code.google.com/p/android/issues/detail?id=8488 – swinefeaster 2011-01-28 20:32:10

+0

我不知道如果您遇到任何问题,但我已找到解决方案它修复了所有android内存泄漏问题与标准的android类:http://code.google.com/p/android/issues/detail?id=8488#c51 – swinefeaster 2011-08-08 00:01:02