2014-04-09 130 views
0

我的问题是什么时候我需要注册广播接收机?何时注册Google Cloud Messaging?

每次应用程序启动时,我都会这样做(或尝试去做)吗?
我是否将注册ID保留在某个地方(当然是持续存在)并检查它是否仅为空注册呢?

目前我注册时,应用程序启动(如果/当他们已被认证),但我不知道这是否好/坏。

请指教。

+0

这是一个很好的方法。您将GCM注册ID存储在共享首选项中。无论何时第一次活动开始,您都会检查共享首选项是否为空。如果是,请联系GCM并将GCM注册ID存储在共享首选项中。如果它已经存储在首选项中,只需跳过注册即可。 – Dhaval

+0

@Dhaval与SQLite数据库相比,共享prefs更好吗?我目前使用其他数据的数据库,并且基础架构很容易扩展。 – Johan

+0

两者都不错。即使应用程序更新,Shared Prefs也不会被破坏,与SQLite相同。它们在卸载时被破坏。我使用共享首选项。 SQLite也很好,但是你只需要编写更多的代码就可以得到一个ID。这是个人选择。 – Dhaval

回答

0

这取决于您的远程服务器实现(作为这种基础设施的必备条件)。在我的第三方服务器中,我实现了一个超时机制,它使得如果客户端每隔X分钟不发送一次keepalive,它会被认为是超时,因此我将其从数据库中删除(因此不会再有消息被发送给这个客户)。

所以,在我的情况,答案是,这是确定每个应用程序启动时进行注册,并没有超时的,只是因为,但也因为GCM系统可能会改变你id每当它需要(这不经常发生,但可能发生)。

+0

我注意到我的ID根本没有改变(在我的开发设备上),但我敢打赌它会(或者实际上可以)在将来改变。 – Johan

+0

是的,它可能在某个时候发生(在我的情况下,我用于测试的一种设备从一天到另一天),所以每次启动应用程序时注册始终是个好主意。它不会造成任何伤害,并且防止更好。 – nKn

相关问题