原理是通过注册广播接收器接收开机广播,然后启动主界面。
1、首先新建一个MyReceiver类继承BroadcastReceiver来接收系统广播。
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context arg0, Intent arg1) {
// TODO Auto-generated method stub
//Intent intent = new Intent(MainActivity.class);
if(arg1.getAction().equals(Intent.ACTION_BOOT_COMPLETED)){
Intent intent=new Intent(arg0,MainActivity.class);//收到广播后启动主界面
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);//设置启动类型
arg0.startActivity(intent);
}
}
}
2、在资源文件中声明接收器
<!-- 声明接收器 -->
<receiver android:name="com.example.testbootstart.MyReceiver">
<!-- 广播过滤 -->
<intent-filter>
<!-- 开机初始化完毕发送的广播,开机完成后发送并只发送一次 -->
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
安装APK后,每次手机重启都会启动程序的MainActivity。
注意事项:可能需要在应用管理中设置允许开机自启动。
项目源码:https://github.com/CoderDog/TestBootStart