一身转战三千里,一剑曾百万师。这篇文章主要讲述在android中无限运行服务相关的知识,希望能为你提供帮助。
我一直在尝试在android中创建一个服务,以便它无限地监听websocket,然后当收到的消息发出通知时。我遇到的最常见的教程是我创建服务的服务和该服务的onDestroy触发广播,然后从广播再次启动服务。但是,当我的应用程序被杀死时,这些技术似乎都没有让我的服务保持活力。
我收到的一些答案是服务无法无限期地工作,那么whatsapp或其他消息应用程序如何始终在后台运行。
答案
我遇到的最常见的教程是我创建服务的那个教程和该服务的onDestroy,触发广播,然后从广播再次启动服务。这种技术肯定不适用于Android 8.0+。
在android中无限运行服务这通常是不可能的,并且在Android 8.0+上绝对不可能。你可以做的最接近的事情是运行前台服务(通过
startForeground()
和Notification
)并从START_STICKY
返回START_REDELIVER_INTENT
或onStartCommand()
。如果您的流程终止,Android应该重新启动您的服务。我希望当设备在Android 6.0+上进入Doze模式或app standby时,您的代码将无效,除非用户将您的应用添加到电池优化白名单中。
whatsapp或其他消息传递应用程序如何始终在后台运行。【在android中无限运行服务】最有可能的是,他们没有。最有可能的是,他们使用的是Firebase云消息传递(FCM)。像WhatsApp这样的品牌也可以与设备制造商达成交易以获得优惠待遇,如果双方都认为这样的交易会是一个好主意。
推荐阅读
- 如何解决android中的版本冲突错误()
- 在所有版本的android中以任何模式保持服务活着
- Android,前台服务让app保持活力吗()
- android中的后台服务没有运行像oppo,vivo等设备
- Android服务重新创建
- 我的春季启动webapp.war停止在ssh注销上运行。如何创建应用服务,以便在没有用户登录的情况下运行
- 在开机或重启设备时启动Android服务[重复]
- 如何通过后台服务每天在android中的特定时间重复通知
- 应用程序暂停使用一段时间后,android服务停止工作