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 {@Overridepublic 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.如果自启动Activitycontext.startActivity(newIntent);//3.如果自启动服务 // context.startService(newIntent);}} }