这是一篇我个人在EOE发的blog《提高service的进程优先级的方法之一,startForeground》,由于eoe的blog系统实在是无言以对,我就把eoe上面的帖子以及blog是都转到csdn上来,原帖地址:http://www.eoeandroid.com/blog-781265-50935.html
前段时间项目中,code移植到mtk上的时候发现了一个问题,就是在批量删除的时候会发现通知栏中会有一个通知,xxx正在运行,点击了解更多...等等,其实按照正常情况,这个不算是问题,mtk上这么做的原因也是为了系统在内存吃紧的时候还能保证联系人的批量操作还能安全的进行,不会被回收掉,但是测试人员提cr了,就去找找,发现进行批量操作的这个service在oncreate中有一个
startForeground,如果
Notification不进行设置直接new的话,就会出现我描述的情况,当然这个
Notification也可以改改一些文字显示什么的,让用户容易理解,这里就是提示service的进程优先级的一种方式,把后台进程提升为前台进程,以免内存紧张的时候回收,当然,destroy的时候要st
opForeground(true);,取消前台进程的状态和管理发出去的通知,代码如下(
逻辑有关代码删掉了
)
@Override
public void onCreate() {
super.onCreate();
……
/// change for low_memory kill Contacts process CR.
startForeground(1, new Notification());
}
/** M: change for low_memory kill Contacts process @{
* reference CR: ALPS00564966,ALPS00567689,ALPS00567905
**/
@Override
public void onDestroy() {
stopForeground(true);
super.onDestroy();
}