ComponentCallbacks2 相关类图
关于ComponentCallback2
- 是一个细粒度的内存回收管理回调。
- Application、Activity、Service、ContentProvider、Fragment实现了ComponentCallback2接口
- 开发者应该实现onTrimMemory(int)方法,细粒度release 内存,参数可以体现不同程度的内存可用情况
- 响应onTrimMemory回调:开发者的app会直接受益,有利于用户体验,系统更有可能让app存活的更持久。
- 不响应onTrimMemory回调:系统更有可能kill 进程
onTrimMemory参数的意义
当开发者的app正在运行
- Trim_memory_running_moderate:设备开始运行缓慢,当前app正在运行,不会被kill
- Trim_memory_running_low:设备运行更缓慢了,当前app正在运行,不会被kill。但是请回收unused资源,以便提升系统的性能。
- Trim_memory_running_critical:设备运行特别慢,当前app还不会被杀死,但是如果此app没有释放资源,系统将会kill后台进程
当开发者的app's visibility 改变
- Trim_memory_ui_hidden:当前app UI不再可见,这是一个回收大个资源的好时机,
当开发者的应用进程被置于background LRU list
- trim_memory_background:系统运行慢,并且进程位于LRU list的上端。尽管app不处于高风险被kill。当前app应该释放那些容易恢复的资源
- trim_memory_moderate:系统运行缓慢,当前进程已经位于LRU list的中部,如果系统进一步变慢,便会有被kill的可能
- trim_memory_complete:系统运行慢,当前进程是第一批将被系统kill的进程。此app应该释放一切可以释放的资源。低于api 14的,用户可以使用onLowMemory回调。