2016-07-15 回答
有几种方法可供参考: 方法1: 提高进程优先级 startforeground(1, new notification()); 降低进程优先级 stopforeground(true); onstart() 方法中进行提高优先级操作,然后在onstop()方法中进行降低优先级操作 这个方法可以将对应ap的adj临时提高到2。 方法2: 找到这个进程对应的androidmannifest.xml文件,在其中添加属性『android:persistent="true"』, 这样可以将该进程设置为常驻内存进程,就可以降低被kill的概率。以acore进程为例, 在 /package/providers/contactsprovider/androidmannifest.xml 文件中增加一行『android:persistent="true"』 具体修改示例如下: 方法3: 在需要提高优先级的地方调用: final intent it = new intent(); it.setaction("android.intent.action.boost_downloading"); it.putextra("package_name", "com.android.contacts"); it.putextra("enabled", true); context.sendbroadcast(it); 在需要恢复到正常优先级时调用: final intent it = new intent(); it.setaction("android.intent.action.boost_downloading"); it.putextra("package_name", "com.android.contacts"); it.putextra("enabled", false); context.sendbroadcast(it); onstart() 方法中进行提高优先级操作,然后在onstop()方法中进行降低优先级操作 这个方法可以将对应ap的adj临时提高到7。