可以从Android应用程序中的多个点调用GCM register()吗?

时间:2015-08-04 09:01:36

标签: android sdk google-cloud-messaging

建筑

我正在构建Android SDK,它应该从SDK服务器接收推送通知。封闭应用程序的后端还发送推送消息,两个后端共享相同的项目ID和密钥。

因此,Google Play服务register()会被调用两次 - 通过应用程序和SDK。

我主要担心的是,连续调用会损害推送发送机制 - 例如,通过更改registrationId,将SDK或应用程序保留为过时的ID。

备注

  • BroadcastRecievers(对于SDK和应用程序)都在清单中注册了相同的类别 - 应用程序的包名称。
  • 推送发送似乎现在效果不错
  • 我对应用和SDK使用相同的senderId。实际上,senderId是SDK参数之一。
  • 应用和SDK都具有相同的registrationId

问题

从SDK调用register()然后从应用程序调用会导致任何冲突或弃用吗?

1 个答案:

答案 0 :(得分:0)

没有调试就很难分辨。但是,如果您为了模块化代码而将SDK中的详细代码与应用程序中的UI代码隔离开来,那么将所有具体代码保留在SDK中是个好主意。 GCM的后端代码(注册,处理推送通知,存储它们)应该由SDK而不是应用程序代码处理。如果你在两个模块中都这样做,是的,可能存在性能问题,这也会破坏SDK的目的..