gpt4 book ai didi

android - START_STICKY 用于 IntentService

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:21:00 25 4
gpt4 key购买 nike

我见过许多 android 服务示例,其中返回 START_STICKY 用于在启动时启动应用程序,但无论如何我可以对 IntentService 使用相同的示例。我知道 Service 方法在主 UI 线程上运行,而 IntentService 作为单独的线程运行。

  1. 但是它们究竟如何被调用以及为什么无法在启动时启动 IntentService。由于 IntentService 在单独的线程上运行,因此如果我不介意的话,我们可以更好地控制它。

  2. 我尝试在 IntentService 中使用 onStartCommand,但我的应用程序在启动时崩溃,即使它在手动启动时运行良好。我们可以覆盖 IntentService 中的 onStartCommand 吗?

有人可以帮我解决这个问题吗?

最佳答案

在启动时运行和 START_STICKY 彼此无关 - START_STICKY 是一个标志,用于确定如果您的服务被 Android 终止时应该发生什么。

IntentService 旨在处理传入的 Intent (通过 handleIntent)并在之后立即停止。正如在 source of IntentService 中看到的那样,它已经适本地处理了 onStartCommand

只要你有要求

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

并在您的 IntentService 上设置正确的 intent-filter:

<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.QUICKBOOT_POWERON" />
</intent-filter>

然后您的服务将在启动完成时被调用。

(一个异常(exception)是,如果您的应用根据 install location 安装在 SD 卡上)

关于android - START_STICKY 用于 IntentService,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24537308/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com