gpt4 book ai didi

android - 持续运行后台服务

转载 作者:可可西里 更新时间:2023-11-01 18:44:26 26 4
gpt4 key购买 nike

我的目标是 sdk 版本 27,最低版本为 19,并试图获得在后台连续运行的服务。我尝试了不同的服务启动选项,但它仍然被该应用程序杀死。我尝试使用 BroadcastReceiver 在它被杀死时启动服务,但这给了我一个错误,说应用程序在后台并且无法启动服务所以我尝试使用 JobScheduler 并且给了我同样的错误。这应该怎么做?例如,如果我正在制作一个计步器应用程序,我如何才能让它在后台运行?

最佳答案

在 oreo 发布的 Android 中定义 limits to background services .

To improve the user experience, Android 8.0 (API level 26) imposes limitations on what apps can do while running in the background.

如果应用需要始终运行其服务,那么我们可以创建前台服务。

Background Service Limitations: While an app is idle, there are limits to its use of background services. This does not apply to foreground services, which are more noticeable to the user.

因此创建一个前台服务。当您的服务正在运行时,您将在其中放置一个用户通知See this answer (还有很多)

现在,如果您不想收到服务通知怎么办。有一个解决方案。

You can create some periodic task that will start your service, service will do its work and stops itself. By this your app will not be considered battery draining.

您可以使用 Alarm Manager 创建周期性任务, Job Scheduler , Evernote-JobsWork Manager .

  • 而不是说出每一个的优点和缺点。我只告诉你最好的。 工作管理器是周期性任务的最佳解决方案。这是用Android Architecture Component介绍的.
  • 与 Job-Scheduler(仅 >21 API)不同,它适用于所有版本。
  • 它还在 Doze-Standby mode 之后开始工作.
  • 做一个Android Boot Receiver用于在设备启动后安排服务。

我使用 Work-Manager 创建了永久运行的服务,它运行良好。

关于android - 持续运行后台服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51289236/

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