我的android应用程序随着时间的推移会占用越来越多的内存。我拿了堆转储并用MAT分析。我的android应用程序消耗太多内存
这里的主要泄漏嫌疑人:
所以好像从内存中后,我退出应用程序也不会被清除我的活动之一(与返回键),然后当我重新启动应用程序创建一个新的实例并填充内存。
现在,如果他们是PhantomReferences为什么内存不清除一段时间后,或者当我退出应用程序?即使当我使用其他应用程序等时,内存也不会被清除。完全关闭应用程序的唯一方法是使用任务管理器手动终止应用程序。
我该怎么做才能避免这种无政府状态的内存消耗?
编辑:
我发现了问题! 每个活动都使用Thread.setDefaultUncaughtExceptionHandler()设置CustomExceptionHandler,并且该CustomExceptionHandler保持对上下文的引用。所以我摆脱了上下文引用,并且在'onDestroy()'方法中'取消了'DefaultUncaughtExceptionHandler。现在真的好多了!
你有线程,Asyntasks ...? – Jonas
是的确都是 – Alexis
......你杀了他们吗? – Jonas