消息投递机制
可靠消息传递的最佳方法取决于您应用的特定要求。请考虑以下因素:
当前实时需求
- 消息频率
- 电池限制
- 前台实时消息传递
当您的应用位于前台时,用户通常期望接收到相当大量的信息,并且想了解以下事项:
接收消息的人员是否在其设备上?
- 他们正在输入吗?
- 他们是否已阅读消息?
- 支持此类实时数据交换的典型方法是使用客户端-服务器协议,例如 WebSockets。WebSockets 可以在您的应用和服务器之间实现持久的双向通信。 OKHTTP 库包含一个 WebSocket 协议实现,您可以在 Android 客户端中使用它。
Firebase Realtime Database 提供预构建的后端和客户端前端,可以代表您处理此类通信。它内部使用 WebSockets 实现客户端和服务器之间的实时通信。
后台实时消息传递
当您的应用不再处于前台时,避免执行会损害系统健康状况和电池续航时间的操作至关重要。由于可靠地投递消息通知仍然很重要,我们建议使用 Firebase Cloud Messaging (FCM)。
FCM 是一种跨平台消息传递解决方案,可高效地将通知和数据消息发送到 Android(及其他)设备。它利用 Android 传输层 (ATL) 来支持具有 Google 服务的设备,以便在您的应用不再运行时通知您更改。消息投递的及时性取决于设备的状态、消息的优先级以及您的应用是否受到 低电耗模式 或 应用待机模式 的限制。
了解如何将 FCM 集成到您的 Android 项目中
为了让您的消息投递更加健壮,请考虑以下策略:
当设备具有 网络连接 时,使用 WorkManager
定期唤醒您的应用 以检查新消息,(理想情况下)是在设备连接到充电器时。
- 使用 Firebase 控制台 和 FCM Data API 中的 Android SDK 投递指标 等工具获取 FCM 投递洞见。
- 使用日志记录机制以及 Firebase Crashlytics 等工具来监控和排查消息投递问题。
- 本页面内容和代码示例受 内容许可 中所述许可的约束。Java 和 OpenJDK 是 Oracle 和/或其附属公司的商标或注册商标。