Android 的 onTrimMemory()
是一个系统广播,当系统内存紧张时,会调用这个方法。它允许应用在内存紧张时采取一些措施,比如释放不必要的资源、回收缓存等。onTrimMemory()
的触发时机是由系统决定的,而不是由应用直接控制的。
以下是 onTrimMemory()
的触发条件:
- 当系统内存低于某个阈值时,会调用
onTrimMemory(int level)
。这个阈值会根据设备的运行状态和应用的优先级进行调整。 - 当应用进程被系统销毁时,会调用
onTrimMemory(int level, boolean final)
。 - 当应用进入后台时,可能会调用
onTrimMemory(int level)
。 - 当应用从后台返回到前台时,可能会调用
onTrimMemory(int level)
。
onTrimMemory()
的回调方法接收一个整数参数 level
,表示内存回收的级别。这个级别的范围是 0 到 15,级别越高,表示内存回收的紧迫程度越大。以下是部分级别的含义:
TRIM_MEMORY_RUNNING_LOW
:应用运行时内存较低,系统可能会回收一些不重要的资源。TRIM_MEMORY_COMPLETE
:应用进程即将被销毁,系统会回收所有非必要的资源。TRIM_MEMORY_MODERATE
:系统内存适中,但可能会回收一些缓存资源。
在 onTrimMemory()
方法中,你可以根据不同的内存级别采取相应的措施,比如释放缓存、关闭不必要的资源等。这样可以确保应用在内存紧张时仍能正常运行。