@Override
public void onTrimMemory(int level) {
super.onTrimMemory(level);
switch (level) {
//TRIM_MEMORY_UI_HIDDEN 表示应用程序的所有UI界面被隐藏了,即用户点击了Home键或者Back键导致应用的UI界面不可见.这时候应该释放一些资源
case Activity.TRIM_MEMORY_UI_HIDDEN:
Log.i(TAG, "onTrimMemory() level=TRIM_MEMORY_UI_HIDDEN");
break;
//TRIM_MEMORY_RUNNING_MODERATE 表示应用程序正常运行,并且不会被杀掉。但是目前手机的内存已经有点低了,系统可能会开始根据LRU缓存规则来去杀死进程了。
case Activity.TRIM_MEMORY_RUNNING_MODERATE:
Log.i(TAG, "onTrimMemory() level=TRIM_MEMORY_RUNNING_MODERATE");
break;
//TRIM_MEMORY_RUNNING_LOW 表示应用程序正常运行,并且不会被杀掉。但是目前手机的内存已经非常低了,我们应该去释放掉一些不必要的资源以提升系统的性能,同时这也会直接影响到我们应用程序的性能。
case Activity.TRIM_MEMORY_RUNNING_LOW:
Log.i(TAG, "onTrimMemory() level=TRIM_MEMORY_RUNNING_LOW");
break;
//TRIM_MEMORY_RUNNING_CRITICAL 表示应用程序仍然正常运行,但是系统已经根据LRU缓存规则杀掉了大部分缓存的进程了。这个时候我们应当尽可能地去释放任何不必要的资源,不然的话系统可能会继续杀掉所有缓存中的进程,并且开始杀掉一些本来应当保持运行的进程,比如说后台运行的服务。
case Activity.TRIM_MEMORY_RUNNING_CRITICAL:
Log.i(TAG, "onTrimMemory() level=TRIM_MEMORY_RUNNING_CRITICAL");
break;
//当应用程序是缓存的,则会收到以下几种类型的回调:
//TRIM_MEMORY_BACKGROUND 表示手机目前内存已经很低了,系统准备开始根据LRU缓存来清理进程。这个时候我们的程序在LRU缓存列表的最近位置,是不太可能被清理掉的,但这时去释放掉一些比较容易恢复的资源能够让手机的内存变得比较充足,从而让我们的程序更长时间地保留在缓存当中,这样当用户返回我们的程序时会感觉非常顺畅,而不是经历了一次重新启动的过程。
case Activity.TRIM_MEMORY_BACKGROUND:
Log.i(TAG, "onTrimMemory() level=TRIM_MEMORY_BACKGROUND");
break;
//TRIM_MEMORY_MODERATE 表示手机目前内存已经很低了,并且我们的程序处于LRU缓存列表的中间位置,如果手机内存还得不到进一步释放的话,那么我们的程序就有被系统杀掉的风险了。
case Activity.TRIM_MEMORY_MODERATE:
Log.i(TAG, "onTrimMemory() level=TRIM_MEMORY_MODERATE");
break;
//TRIM_MEMORY_COMPLETE 表示手机目前内存已经很低了,并且我们的程序处于LRU缓存列表的最边缘位置,系统会最优先考虑杀掉我们的应用程序,在这个时候应当尽可能地把一切可以释放的东西都进行释放。
case Activity.TRIM_MEMORY_COMPLETE:
Log.i(TAG, "onTrimMemory() level=TRIM_MEMORY_COMPLETE");
break;
}
}
Android onTrimMemory
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 闲来无事,来一篇关于Android的多渠道打包的文章,以抛砖引玉,是大家更好的去使用Android studio,...
- 报错 Error:Execution failed for task ':app:processDebugMani...
- 1.主要LOG 信息 01-02 01:34:11.010 I/SystemServer( 1059): User...
- 在学习Android布局的过程中,我经常会混淆android:gravity和android:layout_gra...
- 一:UITextField _messageText=[[UITextField alloc]init]; _me...