专栏名称: Android_开发者
目录
相关文章推荐
51好读  ›  专栏  ›  Android_开发者

使用 FCM 通知您的用户

Android_开发者  · 掘金  · android  · 2018-11-05 06:47

正文

阅读 37

使用 FCM 通知您的用户

作者:史婧羽,开发技术推广工程师,Partner DevRel

本文为 Android 电量管理系列连载的第二篇,希望您能在阅读过程中收获设备续航方面的战略洞见和实践指导。

通知是让应用用户保持联系和获取更新的重要渠道。Android 提供 通知 API 用于在设备上创建和发布通知,但这些通知经常由外部事件触发,并从应用服务器发送至应用。

本文将解释何时以及如何生成这些远程通知,以便为用户提供及时更新并尽量省电。

用 FCM 实现远程通知

我们推荐使用 Firebase 云消息 (FCM) 发送远程通知到 Android 设备。FCM 是一种免费的跨平台消息传递解决方案,每日可靠传递千亿条消息。尤其是用于发送远程通知,以通知客户端应用数据可同步。如果您仍使用已被弃用的 Google 云消息 (GCM) 或 C2DM 库,是时候升级到 FCM 了!

有两种类型的 FCM 消息可选:

您可以把数据信息的 优先级设为高或普通 。如需进一步了解 FCM 消息和消息处理,可参阅 Firebase 博客上的这篇文章

FCM 针对 Android 电源管理特性进行了优化。运用合适的消息优先级和类型,能帮您及时通知用户,还能帮用户省电。如需进一步了解电源管理,可参阅这篇文章:" Android 9 Pie 中的 Moar 电源及未来 "。

是否需要发送通知?

您发送的所有通知都应该设计良好且可执行,并且能为用户提供及时相关的信息。我们推荐您遵循这些 通知指导原则 ,并避免向用户发送垃圾信息。没人想被无关或杂乱无章的通知打扰。如果您的应用这样做,用户可能屏蔽通知甚至卸载您的应用。

Material Design 通知文档 中的 ‘何时不使用’ 通知一节列出了不应该向用户发送通知的一些情况。例如,普通优先级 FCM 数据消息的常见用例是告诉应用有新内容准备同步,但这一操作无需用户交互。所以同步不需要通知用户,应在后台静默进行,而您可以用 WorkManager (当 WorkManager 达到稳定版本后,将是最为推荐的后台处理解决方案。) 或 JobScheduler API 来安排同步。

先发布一个通知

如果您需要发送远程通知,则应始终在收到 FCM 消息后尽快发布通知。如果在发布通知前添加任何额外网络请求,都会导致发送给某些用户的通知延迟。如果处理不当,通知可能根本不会被用户看到,参阅下节 "避免后台服务"。

⚠️ 发布通知前应避免添加任何额外网络请求

还要记住,根据设备状态、用户操作和应用行为,一个或多个省电功能可能会限制应用的后台工作。应用的 jobs 和 alarmas 可能被延迟,且访问网络的功能可能被限制。

因此,为确保及时传递通知,应始终在收到 FCM 消息后立即显示通知,然后再进行网络获取或调度任务等其他工作。

善用 FCM 消息有效负载

如果您需要在收到 FCM 消息后发布通知,则应在 FCM 消息有效负载中包含通知所需的全部数据。

这个建议同样也适用于数据同步——我们推荐应用在 FCM 有效负载中发送尽量多的数据,如必要,在应用打开时再加载剩余数据。如果网络良好,数据很可能在用户打开应用前就同步完成,所以用户不会看到加载进度条。如果网络不好,使用 FCM 有效负载中的内容就可以确保发一条通知给用户,从而仍然可以及时通知用户。然后用户可以打开应用再加载全部数据。







请到「今天看啥」查看全文