代码之家  ›  专栏  ›  技术社区  ›  Dhruv Patel

让我们来讨论Oreo的后台执行限制

  •  1
  • Dhruv Patel  · 技术社区  · 7 年前

    https://developer.android.com/about/versions/oreo/background#migration

    根据文件,谷歌只允许以下东西作为后台处理,

    • 处理高优先级Firebase云消息(FCM)消息。
    • VPN应用将自己推向前台。

    也,

    当应用程序处于前台时,它可以创建和运行两者 前台和后台服务免费。当应用程序进入 允许创建和使用服务。在窗口的最后,应用程序 后台服务,就像应用程序调用了服务的

    白名单几分钟。当一个应用程序在白名单上时,它 可以不受限制地启动服务及其后台服务

    问题是,

    我的应用程序(targetSdkVersion 26),需要在后台下载一个大文件(~100 MB)(一个状态,应用程序甚至不存在于最近的列表中)。我已经创建了一个 Service 谷歌真的意味着,一个应用程序不能在targetSdkVersion 26的后台执行下载过程吗?

    1 回复  |  直到 5 年前
        1
  •  3
  •   Sagar    7 年前

    谷歌真的意味着,一个应用程序不能执行一个下载过程 目标版本26的背景?

    它对在后台执行服务施加了限制。但是你仍然可以在后台完成你的工作。

    如果下载必要的数据确实需要很长时间,您可以使用新的 WorkManager 应用程序编程接口。

    文件上说, WorkManager 适用于需要保证即使应用程序退出系统也能运行它们的任务,例如将应用程序数据上载到服务器。它不适用于在应用程序进程消失时可以安全终止的进程内后台工作。

    你可以 schedule a work

    方法2:创建前台服务

    或者,您可以立即启动ForegroundService,并在终止服务之前执行任务。在某些情况下,您可能需要请求部分唤醒锁定。

    你也可以看看我的答案 SO 更多细节。