首先在 AndroidManifest.xml 文件中注册接收系统开机广播消息的广播接收者
<application ...>
<activity />
<!-- 注册接收系统开机广播消息的广播接收者 -->
<receiver
android:name=".BootBroadcastReveiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.HOME" />
</intent-filter>
</receiver>
</application>
这里只列出了相关的主要代码
创建广播类 BootBroadcastReveiver
package com.xxx.app;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
public class BootBroadcastReveiver extends BroadcastReceiver {
private final String ACTION_BOOT = "android.intent.action.BOOT_COMPLETED";
@Override
public void onReceive(Context context, Intent intent) {
try{
/**
* 如果 系统开机启动,则启动指定包名的应用
*/
if (ACTION_BOOT.equals(intent.getAction())) {
String packageName = "com.xxx.app";
Intent pkgIntent = context.getPackageManager().getLaunchIntentForPackage(packageName);
context.startActivity(pkgIntent);
}
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}