Я хочу использовать C2DM в своем приложении для Android. Я использую схемы кода, показанные в официальных руководствах. Кажется, все работает нормально, но у меня проблема с регистрацией.
В классе C2DMMessaging есть 2 метода, которые я должен использовать: сначала register () и затем getRegistrationID (). Если я использую их последовательно, я получаю нулевую форму getRegistrationID (). Проблема в регистрации асинхронная. В начале своего приложения мне нужно знать regidtrationId, я могу запустить остальную часть приложения только после того, как получу его.
Я попытался выполнить некоторую синхронизацию, используя мониторы (то есть wait () в методе register и notify () в C2DMReceiver.onRegistered ()), но это не сработало (код onRegistered () не был достигнут после вызова wait () в регистре ()).
Другими словами, мне нужно сделать регистрацию синхронной, чтобы я мог продолжить, только после того, как я получу регистрационный идентификатор. Как правильно это сделать?