为什么选择Firebase Cloud Messaging而不是Intent Service?

时间:2018-02-15 17:22:44

标签: android firebase firebase-realtime-database firebase-cloud-messaging

我正在创建一个具有聊天功能的Android应用。如果在聊天未打开时收到新消息,我想创建通知。我的消息存储在firebase数据库中。我看到了创建这些通知的两个选项。一种是使用firebase函数来触发firebase云消息。另一种是使用运行onChildAdded事件处理程序的Intent Service。对我来说,Intent Service似乎更容易。我错过了什么吗?在事件处理程序运行的情况下,使用Cloud Messaging而不是Intent Service会是什么?

1 个答案:

答案 0 :(得分:1)

如果您担心自己的服务会一直运行(并耗尽电量),那么这就是使用云功能的充分理由。此外,您的服务可能会被杀死。

  

因为通常只有少数几个过程   对用户可见,这意味着不应该杀死该服务   除了在低内存条件下。但是,由于用户不是   直接了解后台服务,在该状态下进行考虑   一个有效的候选人,你应该为此做好准备   发生。特别是,长期服务将越来越多   可能会杀死并保证被杀死(并重新启动,如果   如果他们保持足够长的时间,他们就会开始。

最后,为了将结果传递给某项活动,您必须经历的所有大惊小怪可能与开发云功能一样痛苦。

在我工作的公司,我们决定使用云功能,这非常简单。我们只需要跟踪设备的FCM令牌,我们的功能将监视实时数据库中的某个节点。每当有人在那里写作时,我们都会收到警告并能够对其采取行动(抓住节点,识别发送者和接收者,并使用保存的FCM令牌发送通知)。我们已使用此tutorial来实现我们想要的目标。关于如何编写云函数的一些链接,herehere以及我也使用here的问题。官方docs也是。