Android 何时注册推送?

Android 何时注册推送?,android,android-c2dm,Android,Android C2dm,每次创建应用程序时,我是否需要注册推送?或者仅仅注册一次就足够了,比如在登录之后?调用C2DMessaging.register(getApplicationContext(),C2DMConstants.SENDER)的最佳点是什么 我认为您应该在每次用户登录时在GCM上注册该设备,并在用户注销时注销该设备,因为用户可能会使用朋友的设备访问您的应用程序。因此,最好在用户每次注销时注销设备。每次用户登录或注销时,您还需要更新用户及其设备的映射(很可能在您的应用程序服务器上)。我认为您应该在每次用

每次创建应用程序时,我是否需要注册推送?或者仅仅注册一次就足够了,比如在登录之后?调用
C2DMessaging.register(getApplicationContext(),C2DMConstants.SENDER)的最佳点是什么

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

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

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

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

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

但是,我更喜欢更频繁地发送它,以防服务器出现问题


一般来说,谷歌要求我们不要多次注册。拥有代币后,每次启动应用程序时使用它,检查保存的代币:

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

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

但是,我更喜欢更频繁地发送它,以防服务器出现问题


一般来说,谷歌要求我们不要多次注册。一旦你有了令牌,就可以使用它。不必每次启动应用时都注册。但您必须检查GCM服务器是否更改了您的注册id。因为有时候GCM需要更改注册id,甚至它不通知设备。因此,您必须在应用程序中保存注册id,并在应用程序启动时,将保存的id与gcmregistar.getRegistrationId()方法返回的id进行匹配。如果两者不同,请将其保存并在服务器上更新。

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