我有一个应用程序,让用户从SD卡中选择一个图像,然后应用程序处理图像。我正在缩小图像到可用vm内存的1/5,我在onDestroy()调用中为每个位图调用recycle(),如果我多次关闭并打开我的应用程序,我仍然会出现内存错误。
答案 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}}。
一般来说,如果没有看到代码,就很难说会发生什么。