Истекает ли идентификатор регистрации GCM?

Я знаю, что регистрация C2DM истекает, и вы должны периодически обновлять идентификатор регистрации. Это в случае с GCM? посмотрев следующий код в руководстве Android GCM (показано ниже), похоже, что вы делаете это только один раз и не нуждаетесь в обновлении, но я не вижу, что он явно написан где угодно, поэтому я просто хотел проверить.

final String regId = GCMRegistrar.getRegistrationId(this); if (regId.equals("")) { GCMRegistrar.register(this, SENDER_ID); } else { Log.v(TAG, "Already registered"); } 

EDIT: ЭТО ОТВЕТ – ПУТЬ ИЗ ДАТЫ, Я НЕ ИДЕЯ, ЧТО ТЕКУЩЕЕ ПОВЕДЕНИЕ


Я сам нашел ответ. Вы явно не должны перерегистрироваться все время, только один раз в соответствии с примером в документах .

Кроме того, в отличие от предыдущих версий GCM и C2DM , сам Google сейчас не обновляет регистрацию: после того, как у вас есть идентификатор регистрации из начальной регистрации, вы можете пойти, за исключением одного случая: вам все равно нужно перерегистрироваться, когда пользователь обновляется до новой версии (этот случай также обрабатывается в примере выше):

Когда приложение обновляется, оно должно аннулировать существующий идентификатор регистрации, так как не гарантируется работа с новой версией. Поскольку при обновлении приложения не существует метода жизненного цикла, наилучшим способом достижения этой проверки является сохранение текущей версии приложения при сохранении идентификатора регистрации.

Я думаю, что в конце концов он обновлен, да. Из официальных документов:

Существующий идентификатор регистрации может перестать быть действительным в ряде сценариев, в том числе: Если приложение вручную отменит регистрацию, отправив цель com.google.android.c2dm.intent.UNREGISTER. Если приложение автоматически незарегистрировано, что может случиться (но не гарантируется), если пользователь удаляет приложение. Если идентификатор регистрации истекает. Google может решить обновить регистрационные идентификаторы. Для всех этих случаев вы должны удалить этот идентификатор регистрации с стороннего сервера и прекратить его использовать для отправки сообщений. Случается, когда код ошибки NotRegistered.

Это может произойти в запросе GCM с вашего стороннего сервера, который возвращает ответ json с ошибкой Unregistered Device .

Как только это произойдет, вам будет необходимо обновить соответствующие идентификаторы.

http://developer.android.com/guide/google/gcm/gcm.html

  • Как воспроизвести звук уведомления об андроиде
  • NotificationCompat с API 26
  • Отключить звук из NotificationChannel
  • Откройте приложение после нажатия кнопки «Уведомление»
  • Извлечение текста извещных, contentView или contentIntent
  • PendingIntent работает правильно для первого уведомления, но неправильно для остальных
  • Лучший способ сериализации NSData в hexadeximal string
  • android: запуск фоновой задачи с помощью AlarmManager
  • Уведомления Android с кнопками на нем
  • Отмена уведомления об удалении приложения из многозадачной панели
  • Отсутствие права на уведомление Push Push
  • Давайте будем гением компьютера.