Регистрация должна быть постоянной. Но серверы RIM иногда ненадежны: вы видите, что это происходит постоянно?
Вы используете ОС 5.0.0 или более раннюю версию? Если это более старые версии ОС, вам нужно убедиться, что ваш прослушивающий поток всегда работает. Для версии 5.0.0 и выше операционная система позаботится об этом за вас.
Другая мысль относится к подтвержденной доставке и подтверждению заявки. Если вы используете этот уровень обслуживания (доступен для Push Plus или Push Essentials), но ваше приложение не подтверждает уведомление, RIM может пометить ваше устройство как приостановленное и не будет отправлять ему дальнейшие уведомления.
По умолчанию используется метод доставки UNCONFIRMED. Если вы используете серверный SDK RIM в Java, и у вас есть такой код:
pushMessageControl.getQualityOfService().setDeliveryMethod(DeliveryMethod.CONFIRMED);
Или, если вы не используете их SDK, но у вас есть следующий XML в вашем push-запросе:
<quality-of-service delivery-method="confirmed"/>
Затем вам нужно вызвать следующее в вашем приложении BlackBerry в обработчике уведомлений:
pushInputStream.accept();
Пример приложения для устройства pushdemo
, являющегося частью Push SDK, поддерживает дополнительное подтверждение приложения, поэтому вам следует изучить этот код, чтобы узнать, что делать.