Android 是否有一个回调在gcmregistar.register(上下文,发送方id)时被触发;它工作吗?

Android 是否有一个回调在gcmregistar.register(上下文,发送方id)时被触发;它工作吗?,android,push-notification,registration,google-cloud-messaging,Android,Push Notification,Registration,Google Cloud Messaging,我正在尝试注册GCM 我首先检查getRegistrationID是否返回null,当它返回null时,我调用gcmregistar.register(上下文,发送方id) 问题是,一旦注册完成 protected void onRegistered(Context context, String registrationId) 正在获取GCMinentService类中的caled 由于注册过程是通过一个单独的asynctask(或任何其他后台进程)进行的,因此我知道,在此之后立即调用get

我正在尝试注册GCM

我首先检查getRegistrationID是否返回null,当它返回null时,我调用gcmregistar.register(上下文,发送方id)

问题是,一旦注册完成

protected void onRegistered(Context context, String registrationId)
正在获取GCMinentService类中的caled

由于注册过程是通过一个单独的asynctask(或任何其他后台进程)进行的,因此我知道,在此之后立即调用getRegistrationID有时可能会返回null,因为注册过程仍然无法结束

我需要尽快使用regId,并从我的活动中使用它们作为发送到服务器的POST参数

我被困在一个条件中,用户可能会在注册结束前快速单击POST按钮,我会得到一个null而不是一个值

你如何解决这个问题? (我知道解决方法是发出一条消息,告诉用户稍后再试)。
想法?

您可以使用新的API—类的register方法。这是推荐的实现(不推荐使用gcmregistar)。这个方法是阻塞的,所以不能在主线程中调用它。您可以在异步任务中调用它


查看新的代码示例。

您可以使用新的API—类的register方法。这是推荐的实现(不推荐使用gcmregistar)。这个方法是阻塞的,所以不能在主线程中调用它。您可以在异步任务中调用它

请参阅新的代码示例