繁体   English   中英

带网络连接的Android后台服务

[英]Android background service with network connection

目标
使用网络连接创建一个长时间运行的后台服务,类似于Zello应用程序。

问题
从 API 级别 26 (Oreo) 开始,对后台服务及其网络活动有严格的限制。

看看 Zello 应用程序,它有一个持续运行的后台服务,即使设备处于睡眠状态也能接受音频和文本消息,我想知道他们是如何实现的? 他们的服务没有在前台运行。 此外,看起来他们并没有为此使用推送消息,因为该应用程序在推送消息接收出现问题的情况下运行非常稳定(例如低端小米手机)。

任何想法,将不胜感激。

根据我收集的这些应用程序使用 Firebase Cloud 消息服务: https ://firebase.google.com/docs/cloud-messaging/

Firebase 服务嵌入在 Android 系统中,并与 Firebase 服务器保持恒定的网络连接。 然后应用程序会联系 Firebase 服务器,后者又会通知目标设备。

好处:

  • Android 系统负责保持服务器连接的活动和运行
  • 因为使用 firebase 服务的所有应用程序都使用一个连接,所以网络负载被最小化。

缺点:

  • 所有数据都通过 firebase 服务器发送,因此(理论上)可以由 Google 直接访问
  • 根据使用您的应用程序的设备数量,您需要为该服务付费。

提出的类似问题也可能有助于解决该问题: 推送通知技术如何在 Android 上工作?

这些应用程序没有具有持续网络连接的长时间运行的服务。 他们使用推送通知。 当用户有新消息时,服务器会发送推送通知以唤醒设备。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM