Android应用自启动
-
监听系统广播(BroadcastReceiver): 通过接收系统的
BOOT_COMPLETED
广播,可以在设备启动后自动启动应用或服务。你需要在AndroidManifest.xml
中注册一个BroadcastReceiver
,并监听BOOT_COMPLETED
广播。<receiver android:name=".MySelfStartingBroadcastReceiver" android:enabled="true" android:exported="true"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </receiver>
权限及注意事项
<!-- 真机测试或高版本测试 --> <!-- 需手动给应用自启动权限、后台弹出界面权限、悬浮窗权限 --> <!-- 接收启动完成的广播权限 --> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <!-- 悬浮窗 --> <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
在代码中处理广播事件:
public class MySelfStartingBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) { //1.如果自启动APP,参数为需要自动启动的应用包名 Intent newIntent = context.getPackageManager().getLaunchIntentForPackage(context.getPackageName()); //下面这句话必须加上才能开机自动运行app的界面 newIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //2.如果自启动Activity context.startActivity(newIntent); //3.如果自启动服务 // context.startService(newIntent); } } }