2015-05-20 4 views
1

Это мой источник. Я использую push-уведомление GCM для отправки сообщения в одно приложение в другое приложение. Сообщение send first time onReceive() метод, вызванный только один раз, когда сообщение, отправить второй или более раз метод onReceive(), вызываемый два раза, как я могу его решить.Функция BroadcastReceiver onReceive работает два раза

BroadcastReceiver mHandleMessageReceiver = new BroadcastReceiver() 
{ 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     String newMessage = intent.getExtras().getString(Config.EXTRA_MESSAGE); 
     if(newMessage.equals("request")) 
     { 
      System.out.println("Before Request Count"+reqcount); 
       Userdetails(); 
     } 
     else if(newMessage.equals("cancel")) 
     { 
      requestcanceled(); 
     } 
     else 
     { 

     } 
    } 
    } 

Большое спасибо заранее ...

ответ

0

Привет, я нашел решение этой проблемы.

BroadcastReceiver mHandleMessageReceiver = new BroadcastReceiver() 
{ 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     String newMessage = intent.getExtras().getString(Config.EXTRA_MESSAGE); 

context.unregisterReceiver(this); // this line I will added. 
     if(newMessage.equals("request")) 
     { 
      System.out.println("Before Request Count"+reqcount); 
       Userdetails(); 
     } 
     else if(newMessage.equals("cancel")) 
     { 
      requestcanceled(); 
     } 
     else 
     { 

     } 
    } 
    registerReceiver(mHandleMessageReceiver, new IntentFilter(Config.DISPLAY_MESSAGE_ACTION)); 
    } 

После получения сообщения просто отмените регистрацию приемника и еще раз зарегистрируйте приемник tje. Теперь он работает правильно для меня.

0

Я думаю, что может быть GCM ошибка. Многие пользователи столкнулись с одной и той же проблемой. Посмотрите на this thread для получения более подробной информации.

+0

Благодарим за быстрый ответ, и я могу сослаться на вам, вам предоставляется ссылка –

+0

Связанная тема старше 2 лет. Не невозможно, но немного длинный выстрел. –

+0

Может быть, неправильно. Если вы проверите код, и вы уверены, что отправляете jsut одно сообщение ... Я могу утверждать только ошибку GCM. – GVillani82

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