Android:哪种方法最好调用垃圾收集器?

时间:2015-07-22 11:27:39

标签: java android

我在我的应用程序上遇到了一些内存不足的问题,并且想要调用垃圾收集器,但我不确定我应该在哪种方法中调用它。

这是我的代码:

 public static void CleanUpMemory(){
    System.runFinalization();
    Runtime.getRuntime().gc();
    System.gc();
 }

目前我在onStop()中调用此方法,但最好是在onDestroy()内调用吗?

3 个答案:

答案 0 :(得分:1)

手动调用GC绝不是一个好习惯。 Dalvik或ART只比我们更清楚。

如果您的应用需要大量内存来处理昂贵的操作,这是一个很好的解决方案

feColorMatrix

答案 1 :(得分:0)

最好让垃圾收集器独自工作。

当需要垃圾收集内存时,它就会启动。

考虑调用System.gc()只是建议启动在真正需要时运行的gc。

来自javadoc:

  

调用gc方法表明Java虚拟机耗费   努力回收未使用的物体以制造记忆   它们目前可用于快速重复使用。当控制返回时   从方法调用中,Java虚拟机已尽最大努力   从所有丢弃的物体中回收空间。

尝试使用您的改进来使用更少的内存,而不是显式调用gc(缓存对象,使用池等)。

答案 2 :(得分:0)

在您的活动中直接调用gc()并不是一个好习惯(JVM知道何时运行它)。

如果您遇到内存问题,请尝试使用MAT在您的应用中查找内存泄漏。

System.gc()调用也不会强制进行垃圾回收。达尔维克决定何时运行gc