Android--onTrimMemory与onLowMemory

本文详细介绍了Android应用中的onTrimMemory与onLowMemory回调机制。通过不同内存状态的回调,开发者可以适时释放非关键资源,优化应用内存使用,提升用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

onTrimMemory与onLowMemory
我们的Application、Acivity、Service、ContentProvider与Fragment都实现了ComponentCallbacks2接口。
所以能够重写
onTrimMemory与onLowMemory函数。

OnTrimMemory的参数是一个int数值,代表不同的内存状态:
4.1 当我们的应用程序正在运行时:

TRIM_MEMORY_RUNNING_CRITICAL:
系统当前内存紧张,正在运行的进程应该释放非关键资源,来节省内存用于其他地方。如果内存得不到缓解,那么将会接到onLowMemory回调,并且后台进程会被杀死。

TRIM_MEMORY_RUNNING_LOW:
系统当前内存较低,希望能释放一些不使用的资源,来节省内存用于其他地方

TRIM_MEMORY_RUNNING_MODERATE:
系统当前内存情况一般,希望能释放一些不使用的资源,来节省内存用于其他地方

4.0
TRIM_MEMORY_COMPLETE:
该进程在后台进程列表最后一个,如果没有更多可用内存,马上就要被清理。

TRIM_MEMORY_MODERATE:
该进程在后台进程列表的中部,释放更多的内存能帮助系统保持其他后台进程运行更久,提高系统整体性能。

TRIM_MEMORY_BACKGROUND:
该进程进入LRU List,这是一个释放资源的好时机,能让我们的进程更久的存在内存,当用户返回app,能够快速构建,而不是重新创建启动。

TRIM_MEMORY_UI_HIDDEN:
UI不可见了,应该释放占用大量内存的UI数据。
比如说一个Bitmap,我们缓存下来是为了可能的(不一定)再次显示。但是如果接到这个回调,那么还是将它释放掉,如果回到前台,再显示会比较好。

OnLowMemory
这个函数看名字就是低内存。这个函数的回调意味着后台进程已经被干掉了。这个回调可以作为4.0兼容OnTrimMemory的TRIM_MEMORY_COMPLETE来使用

如果希望在其他组件中也能接收到这些回调可以使用上下文的registerComponentCallbacks注册接收,
unRegisterComponentCallbacks反注册

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值