首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >火源背景数据同步

火源背景数据同步
EN

Stack Overflow用户
提问于 2016-07-18 18:43:20
回答 1查看 1.6K关注 0票数 3

我有一个基于Android的闹钟应用程序,对于我们特定的行业用例来说,它非常有用。

现在是这样工作的:后端系统向电话发送一条GCM消息。BroadcastReceiver启动覆盖音量设置的闹钟活动,播放警报,打开背光,在锁定屏幕上显示全屏用户界面,并在解除警报时(通过上游GCM)与后端通信。手机可以重新启动,应用程序没有由用户启动,当后端推送GCM消息时,闹钟仍然会被启动。

编程设计问题:用Firebase代替它的正确方法是什么?

我尝试过的方法:

  • 简单地用FCM替换GCM (不使用Firebase实时数据库)
  • 在启动时(以及在onCreate中)启动一个服务,该服务保持对Firebase实时数据库的引用。(https://gist.github.com/vikrum/6170193)

这两种方法都有效。当然,用FCM取代GCM是很简单的。在服务中保持Firebase引用是处理警报的正确体系结构吗?感觉不太对劲。

我还没有用keepSynced(true)进行编码。也许这就是我应该使用的。我正在寻找一种使用Firebase数据同步的设计,而不是直接处理FCM RemoteMessageBuilder层--我将能够使用大量的XMPP代码、Windows等等。

使用Firebase实现我的闹钟的正确方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-19 13:16:01

这个道格·史蒂文森对Quora的指导是我发现的最好的:

Firebase消息传递和Firebase实时数据库之间的最大区别是:有了消息传递,即使应用程序没有运行,您也可以从睡眠中唤醒设备。数据库只能在应用程序当前运行时接收到已注册侦听器的更新,如果设备没有进入打瞌睡模式(用于Android )。 当用户在应用程序中并与其数据进行积极交互时,请使用实时数据库。 当你不知道用户是否在你的应用程序中,但你想让他们进入你的应用程序(或者让你的应用程序在你决定的特定时刻做一些事情)时,你可以使用云消息。 消息传递也有非常有限的有效负载大小(4k)。使用数据库,您可以从结构中的任何节点读取任意数量的数据。 我在这里对安卓、iOS和Chrome的所有用户都有一个广义的理解。每个平台都有自己的处理消息的特殊方法,但是语义是相似的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38443905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档