很多时候我们需要给apk做一个开机启动的功能,由于系统的开机广播有很多程序在监听,优先级不高,导致apk有时启动会在开机启动进入luancher后,隔一段时间才会开启,所以这时就需要我们自己定义一个开机广播,修改案例如下:
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index ff7ee26..29ebdcb 100755
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -3280,6 +3280,9 @@ public final class ActivityManagerService extends ActivityManagerNative
if (app == null || app.instrumentationClass == null) {
intent.setFlags(intent.getFlags() | Intent.FLAG_ACTIVITY_NEW_TASK);
mStackSupervisor.startHomeActivity(intent, aInfo, reason);
+ Intent bootintent=new Intent();
+ bootintent.setAction("my.intent.action.BOOT_COMPLETED");
+ mContext.sendBroadcast(bootintent);
}
}