我在我的应用程序中使用 GCM。用户要做的第一件事就是登录应用程序。当他发送数据时,如果登录正常,我会调用 GCMRegistrar.register。如果设备注册成功,我将打开一个新活动,否则我想留在同一个活动中并显示错误消息。
我发现的问题是 GCM 寄存器是异步的,我想停止活动的执行,直到它结束。我尝试了以下方法:
GCMRegistrar.register(this, SENDER_ID);
GCMApplication app = (GCMApplication) getApplication();
while(!app.isGcm_registered()){
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
注册结束后,我在应用程序类中将 gcm_registered 设置为 true。但是如果我这样做,注册调用被阻止,我的 GCMIntentService 中的 onRegistered 函数永远不会被调用。如果我不阻止执行,则注册成功完成。
在注册结束之前如何阻止活动的执行?