Android 手机在启动的过程中会触发一个Standard Broadcast Action,名字叫 android.intent.action.BOOT_COMPLETED(只会触发一次), 在这里我们可以通过构建一个广播接收者来接收这个这个action. 下面我就来简单写以下实现的步骤:
第一步:在AndroidManifest中添加权限
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
第二步:配置一个广播接收器,加上接收android.intent.action.BOOT_COMPLETED的intent-filter
<receiver android:name="BootBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
第三步:创建一个广播接收者, 重构onReceive(Context context, Intent intent)方法,启动你想要启动的Service或app。
public class BootBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// 后边的 XXX.class 就是要启动的服务
Intent service = new Intent(context,XXXclass);
context.startService(service); //Intent激活组件(Service)
// 启动应用,参数为需要自动启动的应用的包名
Intent intent = getPackageManager().getLaunchIntentForPackage(packageName);
context.startActivity(intent );
}
}