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

Oreo上的后台执行限制

汤枫涟
2023-03-14
    minSdkVersion 21
    targetSdkVersion 27

我知道运行后台服务有一些限制,我可以通过使用startforeground(...)服务方法来克服这些限制。

我的怀疑是;我应该对所有android版本使用这个startforeground(...)方法吗?由于调用此方法将显示一个通知,如果可能的话,我希望在Oreo之前的版本中避免它。

因此,为了避免在pre-Oreo设备中显示通知,我可以使用下面的代码片段吗?它在奥利奥之前和之后的后台工作吗?

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O /* 26 */) {
        // Make the service as foreground service by calling startForeground method
    } else {
        // Nothing to do
    }
    null

共有1个答案

董洲
2023-03-14

MyService应该在Oreo之前和Oreo之后的操作系统版本中在后台运行。可以限制startForeground(...)的使用吗只为后奥利奥OS版本?

是的。这样用是可以的。

服务将在pre-oreo设备的后台运行,但是如果用户杀死了应用程序,服务也将消失,除非您也将StartForreground用于pre-oreo。

 类似资料:
  • 根据文档,Google只允许以下内容作为后台处理, null 在某些情况下,后台应用程序被放置在临时白名单上几分钟。当一个应用程序在白名单上时,它可以不受限制地推出服务,其后台服务是允许运行的。当应用程序处理用户可见的任务时,它会被放在白名单上,例如: 我的应用程序(TargetSDKVersion26),需要在后台下载一个大文件(~100 MB)(一个状态,应用程序在最近的列表中甚至不存在)。我

  • 问题内容: 如何在不显示通知点的情况下继续在Android Oreo中进行后台服务?我使用通知继续后台服务,但我不想显示正在运行的服务的通知。 问题答案: 如果您可以在此处的某处正确阅读 Android Oreo 8.0 文档,则可能未在此处发布此问题。 步骤1: 确保您将服务作为前台启动,如以下代码所示 步骤2: 使用通知显示您的服务正在运行。在的方法中的代码下面添加一行。 步骤3:在服务停止或

  • 如何在Android奥利奥继续后台服务而不显示通知点?我使用通知继续我的后台服务,但我不想显示运行服务的通知。

  • 我正在努力为我的问题找到解决办法。问题是我试图在奥利奥中启动后台服务,以便检索位置。我看到了这一点:https://developer.android.com/about/versions/oreo/background-location-limits但我正在努力寻找解决办法。 当我启动Foreground服务时,我看到:(IllegalStateException:不允许启动服务)异常,因为我试

  • 当用户未连接到xmpp时,我正在使用FCM通知进行聊天。 FCM中有两种通知模式1。通知消息2。数据消息 如果我的应用程序最近被清除,我将不会使用数据消息作为通知消息 这种方法适用于除奥利奥以外的所有版本。 对于Oreo,我只有在应用程序未连接到xmpp且处于前台时才会收到通知。我的onMessageReception方法正在被调用。 但当该应用程序仅为奥利奥而被删除或从最近的应用程序中删除时,情

  • 问题内容: 我需要在用户操作时执行目录副本,但是目录很大,因此我希望能够执行这样的操作,而用户却不知道完成副本所花费的时间。 任何建议将不胜感激。 问题答案: 假设它在Linux机器上运行,我总是这样处理: 这将启动命令,将命令输出重定向到,并将进程ID写入。 这样一来,您可以轻松地监视该进程在做什么以及它是否仍在运行。