Android getRegistrationId有时返回null

Android getRegistrationId有时返回null,android,Android,我的应用程序逻辑要求我检查这是一个新手机还是之前已经注册的手机。因此,我使用: GCMRegistrar.checkDevice(this); regId = GCMRegistrar.getRegistrationId(this); 然而,我注意到有些时间是returnnull,但是当我重试时,它工作得很好。似乎getRegistrationId需要一些时间: 我的结论正确吗 如果是这样,您建议如何继续,例如shell I显示进度条,以便用户可以等待getRegistrationId返回

我的应用程序逻辑要求我检查这是一个新手机还是之前已经注册的手机。因此,我使用:

GCMRegistrar.checkDevice(this);
regId = GCMRegistrar.getRegistrationId(this);
然而,我注意到有些时间是returnnull,但是当我重试时,它工作得很好。似乎getRegistrationId需要一些时间:

  • 我的结论正确吗
  • 如果是这样,您建议如何继续,例如shell I显示进度条,以便用户可以等待getRegistrationId返回

GCM需要时间来处理

服务器可能已关闭,或者发生了任何与GCM或服务器或设备之间的连接问题相关的情况

因此,最好从登录活动和启动器活动中调用GCM注册器,因为如果我们的设备由于上述任何原因在启动阶段没有得到注册,那么它就有机会再次注册设备