- 在MainActivity同目录下新建一个广播类AutoStartBroadcast,
-
public class AutoStartBroadcast extends BroadcastReceiver { static final String ACTION = "android.intent.action.BOOT_COMPLETED"; @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(ACTION)) { Intent mainActivityIntent = new Intent(context, MainActivity.class); // 要启动的Activity mainActivityIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(mainActivityIntent); } } }
在AndroidManifest.xml文件的<application>标签中,加入如下代码
<receiver android:name=".AutoStartBroadcast">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
AutoStartBroadcast为广播类名,如果类位置和MainActivity位置不一致,可使用 .xxx.AutoStartBroadcast实现。
必须提升程序的权限才能收到系统启动完成的广播。权限的提升也是通过在AndroidManifest.xml中进行配置实现的。在<application>标签之外添加如下代码
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>