【发布时间】:2012-03-08 19:29:16
【问题描述】:
我认为我的问题是因为我滥用了继承。我有 4 个活动,都扩展了共享公共代码的 BaseActivity(onClick、onItemClick、静态和非静态方法)。每个活动都从网络获取数据——包括图像。当我长时间使用整个应用程序时,我会遇到内存泄漏错误(VM 不允许我们分配 xxx 字节)和应用程序崩溃。
如果我正确理解 - 这是因为通过扩展这 4 个活动,我使它们类似于基本活动的内部类 - 这就是为什么当我在它们之间切换时不会调用它们的 onDestroy() 方法。此外 - GC 不回收任何 RAM 并且堆被阻塞。 BaseActivity 保存所有数据(例如图像),因此允许在单击后退按钮时显示它们,而无需重新创建数据。
如果这是真的 - 另一种选择是通过使用帮助类来共享公共代码使它们分开 - 但是,当我将在活动之间切换时 - 他们将一遍又一遍地下载它的数据。
我是对的,有什么解决办法吗?
【问题讨论】:
标签: android memory-leaks