gpt4 book ai didi

android - 如何在 Oreo 中长时间运行后台服务?

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

Android Oreo 对运行后台服务施加了很多限制。 Oreo 中的服务现在不像以前那样正常运行。

但是如果我必须长时间在后台运行服务怎么办?

我正在开发一个应用程序来在用户摇动手机时启动手电筒。为此,我必须将传感器监听器代码放入服务中。

如何防止android系统不杀服务

PS:我不想通过通知启动前台服务。

最佳答案

How do I prevent android system to not kill the service.

总结评论:使用前台服务,在专用 channel 上发送通知, channel 设置为 IMPORTANCE_DEFAULT。建议用户他们可以将该 channel 静音(例如,长按通知栏中的 Notification)。使用专用 channel 意味着您仍然可以在其他 channel 上发出通知。您的通知也应该有用:

  • 如果用户想要将其关闭一段时间,请执行“停止”操作以停止您的服务

  • 点击通知本身会导致您配置应用行为的 Activity

I don't want to start a foreground service with a notification.

那么您很可能无法编写您的应用。

我不能排除 Android 8.x 中存在某些漏洞的可能性,这些漏洞可能会被利用来提供无限期服务。事实上,我认为很可能有东西漂浮在那里。然而,这显然违背了谷歌的 Intent ,意思是:

  • 在没有 Google 认为有效的理由的情况下利用该技术可能会导致您的应用被 Play 商店禁止(如果您计划以这种方式分发应用)

  • 该错误可能会在未来版本的 Android 中修复,与 Google 进行军备竞赛往往是一个失败的提议

有足够多的“空中手势”应用程序四处飘荡(即,根据摇动来做事),理想情况下,谷歌会为其添加一些专用的低功耗 API。例如,他们可以向 JobScheduler 添加功能,以允许您注册摇动事件并在这种情况下调用您的 JobService,就像它们允许您注册ContentProvider 中的更改。我不知道他们是否会提供这样的 API,但如果需要,您可以为其提交功能请求。

关于android - 如何在 Oreo 中长时间运行后台服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48996560/

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