方法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"』
具體修改示例如下:
android:label="@string/app_label"
android:icon="@drawable/app_icon"
android:allowBackup="false"
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。