C2DM правильно обрабатывает регистрацию - PullRequest
0 голосов
/ 22 декабря 2011

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

1 Ответ

0 голосов
/ 22 декабря 2011

Убедитесь, что вы следуете приведенным ниже рекомендациям:

  1. Для разработки и тестирования на эмуляторе Android вам необходимо загрузить версию Android надстройки API Google Android 2.2 в свой SDK.
  2. Убедитесь, что вы указали android:minSdkVersion="8" в манифесте.
  3. Убедитесь, что на вашем эмуляторе или устройстве синхронизирована хотя бы одна учетная запись Google.
...