Java 在Android中,不应该使用System.gc()?

Java 在Android中,不应该使用System.gc()?,java,android,Java,Android,我想知道你不应该在android中使用System.gc() 我搜索了开发人员文档: 结果: 公共静态void gc() API级别1中添加的代码向VM表明这将是一个好时机 运行垃圾收集器。请注意,这只是一个提示。有 不能保证垃圾收集器将实际运行 并且,查找参考信息。此url: 但这是很久以前的事了 如果使用位图,请使用Bitmap.recycle()。但是复杂的视图,如何进行gc 现在,这个问题还没有解决吗?而且从未使用过System.gc()?调用System.gc()并不能保证实际执行垃

我想知道你不应该在android中使用System.gc()

我搜索了开发人员文档:

结果:

公共静态void gc()

API级别1中添加的代码向VM表明这将是一个好时机 运行垃圾收集器。请注意,这只是一个提示。有 不能保证垃圾收集器将实际运行

并且,查找参考信息。此url:

但这是很久以前的事了

如果使用位图,请使用Bitmap.recycle()。但是复杂的视图,如何进行gc

现在,这个问题还没有解决吗?而且从未使用过System.gc()?

调用
System.gc()
并不能保证实际执行垃圾收集。这更像是一个暗示

在Java编程中,通常认为使用此方法调用是非常糟糕的做法,因为使用它意味着某种程度的期望,即垃圾收集随后会发生。事实上,垃圾收集发生的时间取决于很多事情,最好由容器和运行时调优(如果需要)来决定

出于同样的原因,我要说不要在Android中使用
System.gc()

调用
System.gc()
并不能保证垃圾收集的实际执行。这更像是一个暗示

在Java编程中,通常认为使用此方法调用是非常糟糕的做法,因为使用它意味着某种程度的期望,即垃圾收集随后会发生。事实上,垃圾收集发生的时间取决于很多事情,最好由容器和运行时调优(如果需要)来决定


出于同样的原因,我建议不要在Android中使用
System.gc()

如果没有
System.gc()
,您的代码应该可以正常工作。如果您认为必须使用它,请更改代码,如前所述,您不必调用
System.gc()
,它将在系统需要释放内存时被调用,如果您愿意,您可以将一些可能释放内存的不受支持的分配设为空。为什么要对复杂视图进行gc?除非您实际遇到OOM异常或类似的情况,否则永远不要干扰操作系统及其垃圾收集,即使遇到OOM异常,您也可以在不进行垃圾收集的情况下解决此问题……没有
System.gc()
,您的代码应该可以正常工作。如果您认为必须使用它,请更改代码,如前所述,您不必调用
System.gc()
,它将在系统需要释放内存时被调用,如果您愿意,您可以将一些可能释放内存的不受支持的分配设为空。为什么要对复杂视图进行gc?除非您真的遇到OOM异常或类似的情况,否则您永远不应该干扰操作系统及其垃圾收集,即使遇到OOM异常,您也可以在不进行垃圾收集的情况下解决此问题……不过,按工具栏上的“上一步”按钮似乎会自动调用
System.gc()
因为它释放内存,而真正的后退按钮没有,即使在我调用
bitmap.recycle()
finish()
之后。实际上,只有
System.gc()
可以释放设备中的内存。尽管如此,按下工具栏上的“后退”按钮似乎会自动调用
System.gc()
,因为它可以释放内存,而真正的“后退”按钮则不会,即使在我调用
bitmap.recycle()
finish()
之后。实际上,只有
System.gc()
才能释放设备中的内存。