如果我关闭并打开我的应用程序几次,我最终会出现内存错误,这是否意味着我有内存泄漏?

时间:2011-10-02 19:50:20

标签: android memory-leaks bitmap

我有一个应用程序,让用户从SD卡中选择一个图像,然后应用程序处理图像。我正在缩小图像到可用vm内存的1/5,我在onDestroy()调用中为每个位图调用recycle(),如果我多次关闭并打开我的应用程序,我仍然会出现内存错误。

2 个答案:

答案 0 :(得分:2)

Android中存在各种内存泄漏情况。跟踪它们的一种方法是使用Traceview工具http://developer.android.com/guide/developing/debugging/debugging-tracing.html

有关常见Android内存泄漏问题的详细信息,请参阅http://android-developers.blogspot.co.uk/2009/01/avoiding-memory-leaks.html

答案 1 :(得分:0)

请注意,当您完成应用程序的最后Activity时,您的应用程序的Java进程可能(在大多数情况下将)处于活动状态,这意味着当您再次“启动”应用程序时,所有静态内容仍处于活动状态。您是否将任何重物存放在静态场中?

另请注意,根据Activity生命周期,无法保证调用onDestroy()。但是我不认为这是相关的,因为当你(相对于操作系统)关闭Activity时(通过按“后退”按钮或通过从代码中调用finish()),操作系统总是调用{ {1}}。

一般来说,如果没有看到代码,就很难说会发生什么。