在android中无限运行服务

一身转战三千里,一剑曾百万师。这篇文章主要讲述在android中无限运行服务相关的知识,希望能为你提供帮助。
我一直在尝试在android中创建一个服务,以便它无限地监听websocket,然后当收到的消息发出通知时。我遇到的最常见的教程是我创建服务的服务和该服务的onDestroy触发广播,然后从广播再次启动服务。但是,当我的应用程序被杀死时,这些技术似乎都没有让我的服务保持活力。
我收到的一些答案是服务无法无限期地工作,那么whatsapp或其他消息应用程序如何始终在后台运行。
答案

我遇到的最常见的教程是我创建服务的那个教程和该服务的onDestroy,触发广播,然后从广播再次启动服务。
这种技术肯定不适用于Android 8.0+。
在android中无限运行服务
这通常是不可能的,并且在Android 8.0+上绝对不可能。你可以做的最接近的事情是运行前台服务(通过startForeground()Notification)并从START_STICKY返回START_REDELIVER_INTENTonStartCommand()。如果您的流程终止,Android应该重新启动您的服务。
我希望当设备在Android 6.0+上进入Doze模式或app standby时,您的代码将无效,除非用户将您的应用添加到电池优化白名单中。
whatsapp或其他消息传递应用程序如何始终在后台运行。
【在android中无限运行服务】最有可能的是,他们没有。最有可能的是,他们使用的是Firebase云消息传递(FCM)。像WhatsApp这样的品牌也可以与设备制造商达成交易以获得优惠待遇,如果双方都认为这样的交易会是一个好主意。

    推荐阅读