2012-12-24 3 views
1

Я реализовал полную функциональность GCM, и все работает отлично. Когда я запускаю приложение, я получаю regId, и все выглядит хорошо. Но время от времени моя служба GCMIntent перестает получать входящие сообщения. Я хочу знать, что что-то не так с службой GCM, и есть ли способ проверить, было ли отправлено уведомление на устройство или нет. Ниже мой код на стороне клиента для регистрации, а затем мой сервис GCMIntent.Служба GCMIntent иногда перестает получать сообщения

GCMRegistrar.checkDevice(this); 
     GCMRegistrar.checkManifest(this); 
     if(GCMRegistrar.isRegistered(this)) 
     { 
      final String regId = GCMRegistrar.getRegistrationId(this);//app_preferences.getString(Constants.KEY_DEVICE_TOKEN, "");; 
      if(!regId.equals("")) 
      { 
       mRegIds= regId; 
       //sendIdToServer(regId); 
       Log.i("DEVICE TOKEN", regId); 
       is_gcm_registered = true; 
      } 
     } 

     else 
     { 
      GCMRegistrar.register(this, Constants.SENDER_ID); 
      is_gcm_registered = false; 
     } 

GCM INTENT СЕРВИС:

@Override 
protected void onMessage(Context context, Intent intent) { 
    Log.e("GOT INCOMING MESSAGE","HI"); 
    // My implementation 
} 

Проблема иногда он работает сразу, а иногда это может занять до 1 до 2 минут, чтобы получить уведомление. Это нормально?

EDIT: Я читал на GCM Throttling http://developer.android.com/google/gcm/adv.html#throttling и это говорит о том, что приложение запускается из лексем, если сообщения посылаются на то же устройство в объеме. Итак, GCM не лучший способ реализовать приложение мгновенных сообщений?

+0

В каком устройстве вы это проверяете? – appukrb

+0

У меня есть htc evo 3d. и htc wildfire s. – SoH

ответ

0

Да, это нормально, особенно если телефон засыпает на несколько минут. Вы заметите, что если вы активно используете телефон, сообщения, как правило, поступают мгновенно.

Не беспокойтесь слишком много - сообщение придет в конечном итоге.

+0

Фактически я полагаюсь на GCM для мгновенного применения сообщений. Поэтому я должен получать уведомления сразу, иначе это потерянное дело. И это происходит довольно часто. городской дирижабль - лучший вариант, или это просто обертка на GCM. – SoH

Смежные вопросы