Android系统会根据不同等级的内存使用情况,调用这个函数,并传入对应的等级.
当你的应用程序UI不可见的时候,清除部分缓存以减少内存的使用.减少进程被杀几率.
public class TestActivity extends Activity{
@Override
public void onTrimMemory(int level) {
super.onTrimMemory(level);
AILog.w(TAG,"=======> onTrimMemory, level=" + level + "=>" + printLevel(level), LogLevel.RELEASE);
}
private String printLevel(int level) {
String desc ;
switch (level) {
case TRIM_MEMORY_COMPLETE://80
desc = "进程在LRU尾部,如果没有足够的内存, 将很快被杀死";
break;
case TRIM_MEMORY_MODERATE://60
desc = "进程在LRU中部,如果系统进一步需要内存, 可能会被杀死";
break;
case TRIM_MEMORY_BACKGROUND://40
desc = "进程在LRU头部,虽然本进程不会被高优杀死, 但系统已经开始准备杀死LRU列表中的其他进程";
break;
case TRIM_MEMORY_UI_HIDDEN://20
desc = "界面不可见,建议释放UI资源";
break;
case TRIM_MEMORY_RUNNING_CRITICAL://15
desc = "虽然进程不会被高优杀死, 但系统已经开始准备杀死LRU列表中的其他进程,应该释放无用资源以防止性能下降";
break;
case TRIM_MEMORY_RUNNING_LOW://10
desc = "虽然进程不会被高优杀死, 但系统已经开始准备杀死LRU列表中的其他进程,应该释放不必要的资源来提供系统性能";
break;
case TRIM_MEMORY_RUNNING_MODERATE://5
desc = "系统已经进入了低内存的状态,进程正在运行但是不会被杀死";
break;
default:
desc = "";
}
return desc;
}
}
|