我有一个基于Android的闹钟应用程序,对于我们特定的行业用例来说,它非常有用。
现在是这样工作的:后端系统向电话发送一条GCM消息。BroadcastReceiver启动覆盖音量设置的闹钟活动,播放警报,打开背光,在锁定屏幕上显示全屏用户界面,并在解除警报时(通过上游GCM)与后端通信。手机可以重新启动,应用程序没有由用户启动,当后端推送GCM消息时,闹钟仍然会被启动。
编程设计问题:用Firebase代替它的正确方法是什么?
我尝试过的方法:
这两种方法都有效。当然,用FCM取代GCM是很简单的。在服务中保持Firebase引用是处理警报的正确体系结构吗?感觉不太对劲。
我还没有用keepSynced(true)进行编码。也许这就是我应该使用的。我正在寻找一种使用Firebase数据同步的设计,而不是直接处理FCM RemoteMessageBuilder层--我将能够使用大量的XMPP代码、Windows等等。
使用Firebase实现我的闹钟的正确方法是什么?
发布于 2016-07-19 13:16:01
这个道格·史蒂文森对Quora的指导是我发现的最好的:
Firebase消息传递和Firebase实时数据库之间的最大区别是:有了消息传递,即使应用程序没有运行,您也可以从睡眠中唤醒设备。数据库只能在应用程序当前运行时接收到已注册侦听器的更新,如果设备没有进入打瞌睡模式(用于Android )。 当用户在应用程序中并与其数据进行积极交互时,请使用实时数据库。 当你不知道用户是否在你的应用程序中,但你想让他们进入你的应用程序(或者让你的应用程序在你决定的特定时刻做一些事情)时,你可以使用云消息。 消息传递也有非常有限的有效负载大小(4k)。使用数据库,您可以从结构中的任何节点读取任意数量的数据。 我在这里对安卓、iOS和Chrome的所有用户都有一个广义的理解。每个平台都有自己的处理消息的特殊方法,但是语义是相似的。
https://stackoverflow.com/questions/38443905
复制相似问题