我对Cloudant有疑问。
基本上,我们有一个应用程序,旨在协调人们在空闲时见面的共同时间,这将通过他们的"投票"在应用程序上。
所以,我们已经找到了如何从Cloudant启动Pull Replication,然后在我们的数据库中更新任何更改。我们将此方法称为onReceiveUpdate()
。
我们当前的方法是将这个onReceiveUpdate()
方法包含在服务中的无限循环中,如下所示:
@Override
protected Void doInBackground(Void... params) {
while (true) {
onReceiveUpdate();
}
return null;
}
显然,这是一个糟糕的设计,我在电话开始过热时意识到了这一点。我决定阅读更多内容,并遇到了Cloudant's Eventbus/Event
但是,我不确定这是否会让我在Cloundant数据库发生变化时收到通知。所以我去研究更多并找到了Google Cloud Messaging。
我现在的方法是:
onReceiveUpdate()
。问题:如何实施第3步?也就是说,我如何确保Cloudant将<#34; 发送格式正确的请求发送到GCM连接服务器&#34; (来自here),是否有变更?我阅读了他们的文档,但我还没有抓到任何东西。
否则,是否有其他更少的电池密集型替代方案来从Cloudant中提取复制?
答案 0 :(得分:1)
Cloudant不会告诉GCM已经进行了更改。了解是否对数据库进行了更改的最佳方法是使用changes feed。 当您收到更改时,您的服务器代码将需要决定需要通过GCM告知哪个客户端(如果有)与服务器进行复制。