0

每次创建应用程序时都需要注册推送吗?或者注册一次就足够了,例如登录后?打电话的最佳点是C2DMessaging.register(getApplicationContext(), C2DMConstants.SENDER);什么?

4

3 回答 3

1

我认为您应该在每次用户登录时在 GCM 上注册设备,并在用户注销时取消注册设备,因为用户可能会使用他们朋友的设备来访问您的应用程序。因此,最好在每次用户注销时注销设备。每次用户登录或注销时,您还需要更新用户及其设备的映射(很可能在您的应用程序服务器上)。

于 2012-09-19T12:41:49.603 回答
1

每次应用启动时,检查您保存的令牌:

如果为null,则发送注册push的intent

如果不为null,则可以检查是否已发送到服务器并决定是否发送。

但是,我更喜欢更频繁地发送它,以防万一服务器上发生问题。

一般来说,谷歌要求我们不要多次注册。一旦你有一个令牌,使用它

于 2012-09-19T12:42:08.933 回答
1

不,不需要每次应用启动时都注册。但是您必须检查您的注册 ID 是否被 GCM 服务器更改。因为有时 GCM 需要更改注册 ID,甚至它不会通知设备。因此,您必须在应用程序中保存您的注册 id,并在应用程序启动时,匹配保存的 id 和 GCMRegistrar.getRegistrationId() 方法返回的 id。如果两者不同,请将其保存并在您的服务器上进行更新。

于 2012-09-19T12:44:50.363 回答