当前位置: 首页 > 面试题库 >

尝试在Android上启动时启动服务

上官华池
2023-03-14
问题内容

当设备在android上启动时,我一直在尝试启动服务,但无法正常工作。我已经看了许多在线链接,但是这些代码都不起作用。我忘记了什么吗?

AndroidManifest.xml
<receiver
    android:name=".StartServiceAtBootReceiver"
    android:enabled="true"
    android:exported="false"
    android:label="StartServiceAtBootReceiver" >
    <intent-filter>
        <action android:name="android.intent.action._BOOT_COMPLETED" />
    </intent-filter>
</receiver>

<service
    android:name="com.test.RunService"
    android:enabled="true" />

广播接收器

public void onReceive(Context context, Intent intent) {
    if ("android.intent.action.BOOT_COMPLETED".equals(intent.getAction())) {
        Intent serviceLauncher = new Intent(context, RunService.class);
        context.startService(serviceLauncher);
        Log.v("TEST", "Service loaded at start");
    }
}

问题答案:

作为附加信息:BOOT_COMPLETE在挂载外部存储之前发送到应用程序。因此,如果将应用程序安装到外部存储,它将不会收到BOOT_COMPLETE广播消息。



 类似资料:
  • 问题内容: 从我在Stack Exchange和其他地方看到的所有内容中,我已经正确设置了所有内容,可以在启动Android OS时启动IntentService。不幸的是,它没有在启动时启动,并且我没有收到任何错误。也许专家可以帮忙… 表现: 用于启动的BroadcastReceiver: 更新:我尝试了下面的几乎所有建议,并;在处理程序中添加了日志记录,但从未记录过任何内容。因此,它甚至还没有

  • 我试图改变端口,我也这样做了,但它显示了相同的消息。“正在尝试启动mysql”,一个弹出窗口即将启动net解决方案。Apache端口已更改:80--

  • 我已经在我的电脑上安装了tomcat appache 7。现在我想在xampp控制面板的tomcat上运行我的jsp项目。所以我将端口8080更改为8090。但tomcat仍然没有运行并且只显示尝试启动tomcat服务。请帮助我。提前谢谢你

  • 我尝试使用< code>minikube start启动minikube,但出现以下错误: charlie@charlie:~$minikube start本地库伯内特斯v1.10.0集群…启动VM… E0705 00:39:35.199099 20888start.go:168]启动主机时出错:创建主机时出错:执行步骤出错:运行预先检查。:我们从版本5开始支持Virtualbox。您的Virtu

  • 我很久以前做了一些自定义systemd服务,都有相同的配置(当然ExecStart除外) 这种配置已经运行了很多年,从18.04版LTS开始,我已经启动并运行了ubuntu,但是现在看起来有些systemd服务根本没有启动,配置如下(myapp.service): 服务已启用: 如果在重新启动后执行“systemctl status myapp”: 如果我在重新启动后执行“Journal alct

  • 我试图在非自定义端口(例如25565)上使用命令启动minecraft服务器: java-jar craftbukkit.jar [12:24:27 WARN]:要启动具有更多ram的服务器,请将其启动为“java-xmx1024m-xms1024m-jar minecraft_server.jar” [12:24:27信息]:正在加载属性 [12:24:27信息]:默认游戏类型:生存 [12:2