我正在努力寻找可能的内存泄漏问题。我有一个在后台执行一些繁重工作的活动。
在完成一些任务后,应用程序会消耗太多的内存。似乎它没有得到适当的清理。
这是默认状态下的Activity:
如果我运行Activity正在执行的任务,就会分配更多的内存。
起初,我认为这必须是一个内存问题,因为GC不能正确地释放内存。据我所知,如果没有对对象的引用,GC可以释放内存。这是正确的吗?
现在让我感到困惑的部分:
如果我从Android Studio运行GC,则可以正确清除内存,我的Activity永远不会关闭。当分配了太多内存时,我只需要使用Android Studio GC。
这就是我所说的那个。
一般来说,问题是:
为什么Android Studio的垃圾回收可以正确清理内存,而自动的Android GC却不能正常工作?
我知道这是一个非常普遍的问题。我只是想知道是否有不同类型的垃圾回收或类似的东西。
此外,调用System.gc();
并不能正确地清理内存。
附加信息:
Moto G 2nd gen
Android 5.0.2。