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



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

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

请注意,当你完成应用程序的最后一个Activity时,应用程序的Java进程可能(在大多数情况下)是活跃的,这意味着当你再次"启动"应用程序时,所有静态内容仍然是活跃的。你在静电场存放重物吗?

还要注意,根据Activity的生命周期,不能保证调用onDestroy()。然而,我不认为这是相关的,因为当你(相对于操作系统)关闭Activity(通过按"后退"按钮或从代码中调用finish()),那么操作系统总是调用onDestroy()

一般来说,不看代码很难知道发生了什么。

最新更新