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" 』
具体修改示例如下:
<application
android:process=" android.process.acore "
android:label="@string/app_label"
android:icon="@drawable/app_icon"
android:allowBackup="false"
android:persistent="true" <!--新增加代码,保证acore进程不被ActivityManager杀死-->
>
方法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);
这个方法可以将对应AP的 ADJ 临时提高到 7 。