java runtime.gc_java – 在onLowMemory方法中调用Runtime.gc()

在Android应用的onLowMemory()方法中直接使用System.gc()来强制垃圾回收不是一个好习惯。System.gc()只是一个提示,并不保证立即执行垃圾回收。根据官方文档,应该在onLowMemory()中释放不必要的资源,如缓存,而不是依赖System.gc()。例如,可以将大的缓存对象设为null,让垃圾收集器在方法结束时自动处理。这样做可以确保更有效的内存管理。
摘要由CSDN通过智能技术生成

我们是否应该使用Runtime.gc()或System.gc()来清除Application类中onLowMemory()方法中生产代码中的内存(手动垃圾回收)?

解决方法:

这是一个不好的做法,使用System.gc()并不意味着你手动使用gc它只是提示jvm擦除垃圾.最好不要在Object中使用像finalize()这样的方法,它们都不提供任何保证.在应用程序的javadoc中,系统将在从此方法返回后执行gc并以正确的方式执行此操作.

You should implement this method to release any caches or other

unnecessary resources you may be holding on to. The system will

perform a garbage collection for you after returning from this method.

因此,当您从此方法返回后在onLowMemory()方法中使用System.gc()时,将是另一个垃圾收集工作.从javadoc的提示中,最好丢失示例List< Object>中的缓存链接. bigCache = null;方法结束后将进行垃圾收集,获取缓存列表并释放内存.

标签:android,java,performance

来源: https://codeday.me/bug/20190727/1550742.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值