我一直在研究Android中的内存泄漏问题。在我的应用程序中,我遇到了“java.lang.OutOfMemoryError:bitmap size exceeds VM budget”异常。通过谷歌搜索,我发现这是一个常见的错误(这个SO问题和这个SO问题都涉及了这个问题),并使用了建议的解决方案。
我找到了一份官方的Android文档来处理这个问题,并且还有一个SO问题来解释官方示例。它在示例中说:
我找到了一份官方的Android文档来处理这个问题,并且还有一个SO问题来解释官方示例。它在示例中说:
drawable引用了TextView,而TextView本身又引用了Activity(即Context),而Activity又引用了几乎所有内容
但我仍然不明白一件事:如果Drawable没有声明为静态的,为什么它不会在Activity的onDestroy()方法中被销毁?Drawable被销毁,TextView被销毁,Activity被销毁 - 没有引用和内存泄漏。这不是它应该工作的方式吗?