我正在尝试注册 GCM。
我首先检查我的 getRegistrationID 是否返回 null,当返回 null 时,我调用 GCMRegistrar.register(context, sender_id)。
事情是,一旦注册完成,
protected void onRegistered(Context context, String registrationId)
正在 GCMIntentService 类中进行校准。
由于注册过程是通过单独的异步任务(或任何其他后台进程)进行的,我知道在此之后立即调用 getRegistrationID 有时可能会返回 null,因为注册过程仍然无法结束。
我需要尽快使用 regId 并从我的同一个 Activity 中使用它们作为 POST 参数发送到服务器。
我遇到这样一种情况,用户可能会在注册结束前快速点击 POST 按钮,我将得到一个空值而不是一个值。
您如何解决这个问题? (我知道一种解决方法是发出一条消息,告诉用户稍后再试)。 想法?
最佳答案
您可以使用新的API - GoogleCloudMessaging 的注册方法类(class)。这是推荐的实现(GCMRegistrar 已弃用)。这个方法是阻塞的,所以你不能在主线程中调用它。您可以在 AsyncTask 中调用它。
查看新GCM Demo获取代码示例。
关于android - 每当 GCMRegistrar.register(context, sender_id); 时是否会触发回调?它工作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17665381/