如何清除AsyncTask的引用

时间:2011-08-17 14:14:50

标签: android android-asynctask out-of-memory

在我的应用程序中,我已将一些图像存储在drawable中,并且我在自定义列表视图中显示这些图像。当活动打开和关闭时,图像已被分配。当我连续执行此操作大约12次时,我的应用程序会崩溃,并且因为内存超出图像异常而显示。

然后在堆栈中通过流程查看其他问题我通过清除回收来清除内存。但仍然会继续相同的错误。其他一些人认为这可能是因为在活动结束时没有给出finish()。我也试过,但同样的错误继续。然后我也尝试清除图像视图。

但毕竟这样我运行应用程序的次数会增加,但同样的错误会继续,并且由于OutOfMemoryError而导致错误。我不知道该怎么做

现在我的疑问是,我通过异步任务调用此活动。虽然活动已完成,但异步任务用于创建类的引用。所以我担心因为这个应用程序正在崩溃。

如果我怀疑是对的,请告诉我如何检查asyn任务的参考是否存在,即使在完成活动后也是如此。如果它在那里如何清除它,

请帮助我的朋友.....

1 个答案:

答案 0 :(得分:1)

如果Asynctask完成并且您不再持有对它的引用,则异步任务的对象将被垃圾收集。我怀疑这是除非你持有Asynctask对象列表的原因。如果你担心它,那么一旦从Asynctask获取数据,将其引用设置为null。

我的猜测是你刚从图像中耗尽内存。在使用Android时,Android中的图像处理可能很困难。当我遇到这个问题时,这个帖子有很大帮助。基本上它说要降低图像质量,因此需要更少的内存。

Strange out of memory issue while loading an image to a Bitmap object

相关问题