当前位置: 首页 > 知识库问答 >
问题:

Android BOOT_COMPLETED事件未启动服务

龙承德
2023-03-14
 <receiver android:name="com.company.Broadcast"
     android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
       
        <intent-filter>
    
            <action android:name="android.intent.action.BOOT_COMPLETED" />
    
            <category android:name="android.intent.category.LAUNCHER" />
    
        </intent-filter>
    
    </receiver>
    
    <service android:enabled="true" android:exported="false" android:name="com.company.service" />
    public class Broadcast extends BroadcastReceiver {
    
        private static final String TAG = “BroadcastReceiver";
    
        @Override
    
        public void onReceive(Context context, Intent intent) {
    
            Log.d(TAG, "onReceive");
    
            Intent service = new Intent(context, Service.class);
    
            service.setFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
    
            context.startService(service);
        
    }
    
    
    }
01-18 17:02:58.933 504-560/? I/PackageManager: Package com.android.deskclock checking android.permission.RECEIVE_BOOT_COMPLETED: BasePermission{183dc63c android.permission.RECEIVE_BOOT_COMPLETED}
01-18 17:02:58.933 504-560/? I/PackageManager: Package com.android.deskclock granting android.permission.RECEIVE_BOOT_COMPLETED
01-18 17:02:58.933 504-560/? I/PackageManager: Package com.android.mms.service checking android.permission.RECEIVE_BOOT_COMPLETED: BasePermission{183dc63c android.permission.RECEIVE_BOOT_COMPLETED}
01-18 17:02:58.933 504-560/? I/PackageManager: Package com.android.mms.service granting android.permission.RECEIVE_BOOT_COMPLETED
01-18 17:03:06.235 504-529/? D/ActivityManager: send broadcast: android.intent.action.BOOT_COMPLETED, skip package: com.google.android.gm
01-18 17:03:06.235 504-529/? D/ActivityManager: send broadcast: 

> android.intent.action.BOOT_COMPLETED, skip package: com.company

01-18 17:03:06.235 504-529/? D/ActivityManager: send broadcast: android.intent.action.BOOT_COMPLETED, skip package: com.frozendevs.cache.cleaner

我可能错过了一些让它工作的代码。任何意见/建议都将对我今后的工作有很大帮助。

共有1个答案

令狐晟
2023-03-14

问题出在设备上。有些设备只允许内部应用程序接收此操作。

您可以将其添加到您的意图筛选器中作为解决方案

<action android:name="android.intent.action.USER_PRESENT" />

这是在用户解锁设备后触发的。

 类似资料:
  • 服务启动事件 function onWorkerStart(\swoole_server $server,$workerId); 此事件在Worker进程/Task进程启动时发生。这里创建的对象可以在进程生命周期内使用,需要注意的是 Task进程也会触发此事件 发生致命错误或者代码中主动调用exit时,Worker/Task进程会退出,管理进程会重新创建新的进程,也会触发本事件 onWorkerS

  • 服务启动前事件 function beforeWorkerStart(\swoole_server $server); 在执行beforeWorkerStart事件时,框架已经完成的工作有: frameInitialize 事件内的全部事务 frameInitialized 事件内的全部事务 错误处理函数的注册 swoole_http_server对象创建,且设置了启动参数。(未启动) 在该回调事

  • 服务主进程启动事件 function onStart(\swoole_server $server); Server启动在主进程的主线程回调此函数 在此事件之前Swoole Server已进行了如下操作 已创建了manager进程 已创建了worker子进程 已监听所有TCP/UDP端口 已监听了定时器 接下来要执行 主Reactor开始接收事件,客户端可以connect到Server onSta

  • 问题内容: 考虑以下简单的Hibernate场景: 此代码产生以下异常: 这是怎么回事? 问题答案: 好吧,看来一旦我们达到要求,交易就已经提交了。我唯一的猜测是Hibernate 在访问对象时已经提交了事务。 解决方法很简单:

  • Jenkins作为一项windows服务,已经运行了几个月,没有出现任何问题。 我做了一些Jenkins更新(将一个更新的.war文件复制到.Jenkins文件夹),也进行了一些windows更新。我的版本是Jenkins 2.263.3。 我浏览了很多文档和其他StackOverflow票据,发现JENKINS_HOME环境变量缺失。我加了这个。 这是我的调查揭示的。 设置Java环境变量-见下

  • 我们在Android8.1及以上版本中偶然发现了一个我们以前从未见过的问题,不幸的是,这使得我们的应用程序对我们的用户来说不太方便。在Android 8.1及以上版本中,当用户刷屏杀死应用程序时,后台粘性服务不会重新启动。