最近项目要实现一个开机自启动的功能,查阅资料 ,很简单 ,记录一下 。
第一步:设置权限
<!--开机自启动的权限--> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
第二步:自定义广播 创建一个自定义的类
/** * Created by Administrator on 2017/11/16. * 开机自启动的广播 */ public class BootBroadcastReceiver extends BroadcastReceiver { static final String ACTION = "android.intent.action.BOOT_COMPLETED"; @Override public void onReceive(Context context, Intent intent) { String packageName=App.getInstance().getPackageName(); if (intent.getAction().equals(ACTION)) { /*Intent intent1 = new Intent(context, MainActivity.class); */ // 要启动的Activity // 1.如果自启动APP,参数为需要自动启动的应用包名 Intent intent1 = App.getInstance().getPackageManager().getLaunchIntentForPackage(packageName); //下面这句话必须加上才能开机自动运行app的界面 intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //2.如果自启动Activity context.startActivity(intent1); //3.如果自启动服务 context.startService(intent); } } } }
第三步:在manifest配置广播
<!--开机自启动的广播--> <receiver android:name=".receiver.BootBroadcastReceiver"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED"></action> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </receiver>
第四步:测试