Android设备开机后自动启动APP解决方法:通过广播的方式处理 BOOT_COMPLETED
首先,写个广播,知道啥时候是开机或者重启了。判断接受一个广播是否为开机的动作,然后用意图对象来完成激活Activity。
public class AutoBoot extends BroadcastReceiver {
private static final String TAG = "AutoBoot-BroadcastReceiver";
@Override
public void onReceive(Context context, Intent intent) {
// 设备一开机就自动启动应用
if(intent.getAction().equals("android.intent.action.BOOT_COMPLETED")){
Intent it = new Intent(context,WelcomeActivity.class);
it.setAction("android.intent.action.MAIN");
it.addCategory("android.intent.category.LAUNCHER");
it.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(it);
Log.d(TAG, "AutoBoot 开机自动启动");
}else{
Log.d(TAG, "AutoBoot 非开机自动启动");
}
}
其次,在manifest里面注册广播。
如果是永久的有这个功能,那就是写在manifest。
如果是临时的那就用代码注册。
<receiver android:name="AutoBoot">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</receiver>