可靠地接收消息

可靠地接收消息是任何 Android 消息应用体验中最关键的功能。在实现消息功能时,还要注意系统健康状况和电池续航时间。本文档将指导您了解确保 Android 应用始终如一、高效且可靠地接收消息的关键策略和工具。

消息传递机制

可靠消息传递的最佳方法取决于您的应用的具体需求。请考虑以下因素:

  • 当前实时需求
  • 消息频率
  • 电池限制

前台实时消息传递

当您的应用处于前台时,用户通常期望获得相当大量的信息,并想知道以下内容:

  • 正在发送消息的人员是否在其设备上在线?
  • 他们是否正在输入?
  • 他们是否已阅读消息?

支持此类实时数据交换的典型方法是使用客户端-服务器协议,例如 WebSockets。WebSockets 支持您的应用和服务器之间的持久、全双工通信。OKHTTP 库 包含您可以用于 Android 客户端的 WebSocket 协议实现

Firebase 实时数据库 提供预构建的后端和客户端前端,可以代表您处理此类通信。它在内部使用 WebSockets 来实现其客户端和服务器之间的实时通信。

后台实时消息传递

当您的应用不再处于前台时,避免执行会对系统健康和电池续航产生不利影响的操作至关重要。由于可靠地传递消息通知仍然很重要,我们建议您使用Firebase Cloud Messaging (FCM)

FCM 是一款跨平台消息传递解决方案,可高效地将通知和数据消息发送到 Android(和其他)设备。它利用 Android 传输层 (ATL) 为拥有 Google 服务的设备提供服务,以便您的应用在不再运行时也能收到更改通知。消息传递的及时性取决于设备的状态、消息的优先级以及您的应用是否因休眠 (doze)应用待机 (app standby)而受到限制。

增强消息传递的可靠性

为了使您的消息传递更加可靠,请考虑以下策略