在android中无限运行服务

问题描述 投票:1回答:1

我一直在尝试在android中创建一个服务,以便它无限地监听websocket,然后当收到的消息发出通知时。我遇到的最常见的教程是我创建服务的服务和该服务的onDestroy触发广播,然后从广播再次启动服务。但是,当我的应用程序被杀死时,这些技术似乎都没有让我的服务保持活力。

我收到的一些答案是服务无法无限期地工作,那么whatsapp或其他消息应用程序如何始终在后台运行。

android service background-service
1个回答
2
投票

我遇到的最常见的教程是我创建服务的那个教程和该服务的onDestroy,触发广播,然后从广播再次启动服务。

这种技术肯定不适用于Android 8.0+。

在android中无限运行服务

这通常是不可能的,并且在Android 8.0+上绝对不可能。你可以做的最接近的事情是运行前台服务(通过startForeground()Notification)并从START_STICKY返回START_REDELIVER_INTENTonStartCommand()。如果您的流程终止,Android应该重新启动您的服务。

我希望当设备在Android 6.0+上进入Doze模式或app standby时,您的代码将无效,除非用户将您的应用添加到电池优化白名单中。

whatsapp或其他消息传递应用程序如何始终在后台运行。

最有可能的是,他们没有。最有可能的是,他们使用的是Firebase云消息传递(FCM)。像WhatsApp这样的品牌也可以与设备制造商达成交易以获得优惠待遇,如果双方都认为这样的交易会是一个好主意。

© www.soinside.com 2019 - 2024. All rights reserved.