<p> Android的自启动类似于Windows的开机启动,允许开发者让自己的APP在开机的时候做一些操作,如启动一个后台的Service、发送一条通知甚至是启动一个Activity界面等。</p>
1、写一个广播类
<p>新建一个广播类:</p>
public class BootReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
//标准的写法是需要判别Action的类型的
if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)){
//你想执行的操作
}
}
}
2、添加Manifest配置
配置广播监听器 (如果不是AndroidStudio的话,你可能需要把name改成BootReceiver的完整路径):
<receiver
android:name=".BootReceiver"
android:enabled="true">
<intent-filter>
<action
android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
添加权限:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
经过以上配置,你的APP已经可以在开机时执行你的自定义操作了,但是在一些国产系统上,会有自带的安全管理软件对开机启动进行管理,如果安全管理软件内屏蔽了APP的自启动,那么你的APP仍然无法自动启动。另外,在开机时发送通知和启动Activity是一件非常影响用户体验的是事,需要谨慎考虑。
3、其他相关系统广播
有开机广播,自然也有关机广播和重启广播
- 关机广播(没有权限)
<action android:name="android.intent.action.ACTION_SHUTDOWN"/>
- ** 重启广播**
重启时也会先发送ACTION_SHUTDOWN广播
<action android:name="android.intent.action.REBOOT"/>
重启完成权限(需要监听重启完成的权限)
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>