前言
最近在开发平板的App,根据App的使用场景,提出设备开机App自动启动的需求。找了一些资料,我发现可以通过广播来实现,下面来说说实现需求的代码。
实现过程
1.申请权限
在AndroidManifest.xml
文件中申请下面的权限
<!--开机自启动广播权限-->
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
2.定义广播
public class AutoStartBroadcast extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent autoStart = new Intent(context, LoginActivity.class);
autoStart.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(autoStart);
}
}
注意:Intent一定要添加addFlags(Intent.FLAG_ACTIVITY_NEW_TASK),否则跳转会出现失败的情况。
静态注册广播
在AndroidManifest.xml
文件中静态注册的代码
<!--App自启动-->
<receiver android:name=".broadcast.AutostartBroadcast">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.HOME" />
</intent-filter>
</receiver>
总结
我这个开机App自启动功能是在平板设备实现的,手机设备需要做其他处理。一般来说用户是不允许开机自动启动的App,不建议在手机设备上实现。希望对Android开发的小伙伴有帮助,为自己打个小广告哈!下面是我的公众号的图片,我会经常更新一下技术干货或者开发踩坑历程,欢迎大家关注我!