android代码中执行gc,java – 如何在Android中听GC事件

为什么你想要这个听众如果你只想知道你的应用程序是否运行内存不足,请检查一下:

释放内存,因为内存变紧

在应用程序生命周期的任何阶段,onTrimMemory()回调还会告诉您整个设备内存何时变低.您应该根据onTrimMemory()提供的以下内存级别进一步释放资源进行响应:

> TRIM_MEMORY_RUNNING_MODERATE

您的应用程序正在运行并且不被视为可杀死,但是设备的内存不足,并且系统正在积极地杀死LRU缓存中的进程.

> TRIM_MEMORY_RUNNING_LOW

您的应用程序正在运行,并且不被视为可杀死,但是设备的内存运行速度要低得多,因此您应该释放未使用的资源以提高系统性能(直接影响应用程序的性能).

> TRIM_MEMORY_RUNNING_CRITICAL

您的应用仍在运行,但系统已经杀死了LRU缓存中的大部分进程,因此您现在应该释放所有非关键资源.如果系统无法回收足够的RAM,它将清除所有LRU缓存,并开始杀死系统优先保留的进程,例如托管正在运行的服务的进程.

此外,当您的应用程序进程当前被缓存时,您可能会从onTrimMemory()获得以下级别之一:

> TRIM_MEMORY_BACKGROUND

系统运行内存不足,您的进程接近LRU列表的开头.虽然您的应用进程没有被杀死的高风险,但系统可能已经在LRU缓存中杀死进程.您应该释放易于恢复的资源,以便您的进程将保留在列表中,并在用户返回到应用程序时快速恢复.

> TRIM_MEMORY_MODERATE

系统运行内存不足,您的进程靠近LRU列表的中间.如果系统进一步限制内存,那么您的进程有可能会被杀死.

> TRIM_MEMORY_COMPLETE

系统运行内存不足,如果系统现在不能恢复内存,则进程是第一个被杀死的程序.您应该释放对恢复应用状态不重要的所有内容.

因为onTrimMemory()回调是在API级别14中添加的,所以您可以使用onLowMemory()回调作为旧版本的回退,大致相当于TRIM_MEMORY_COMPLETE事件.

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值