Android 监听开机广播实现应用开机自启动
来源:     阅读:7
易浩激活码
发布于 2025-10-13 18:25
查看主页

实现BroadcastReceiver
第一实现一个BroadcastReceiver,该广播接收者监听"android.intent.action.BOOT_COMPLETED"广播,当接收到该广播时,打开该应用的启动页面。

public class BootReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) {
            Intent toIntent = context.getPackageManager().getLaunchIntentForPackage(context.getPackageName());
            context.startActivity(toIntent);
        }
    }
}

在Manifest中声明该广播接收者
需要注意的是该广播接收者只能在Manifest中声明,而不能在代码中启动,否则无法接收到开机广播。

        <receiver android:name=".base.BootReceiver">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </receiver>

声明权限
最后别忘了在Manifest中声明接收开机广播的权限,许多人都忘了这一步,导致无法接收到广播

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

无法接收到广播
这里列举下一些常见的无法接收到开机广播的缘由:

未添加权限<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>。
被系统自带或360手机助手等拦截,需在权限管理设置里放开开机自启动的权限。
应用安装到sd卡上,安装在sd卡上的应用是收不到BOOT_COMPLETED广播的。
系统开启了Fast Boot模式,这种模式下系统启动并不会发送BOOT_COMPLETED广播。
应用程序安装后重来没有启动过,这种情况下应用程序接收不到任何广播。

参考文章:
https://www.jianshu.com/p/4488ba825f4a

免责声明:本文为用户发表,不代表网站立场,仅供参考,不构成引导等用途。 系统环境
相关推荐
LevelDB 完全解析(0):基本原理和整体架构
缓存那些事之常见问题与处理方案
web前台入门到实战:js限制按钮每隔一段时间才能再次点击
如何为magento系统自建站安装SSL安全证书 开启HTTPS访问
Dubbo+zookeeper实现分布式服务框架
首页
搜索
订单
购物车
我的