2017-02-03 1 views
0

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

protected void onStart() { 
     super.onStart(); 
     LocalBroadcastManager.getInstance(this).registerReceiver((receiver), 
       new IntentFilter(GCMIntentService.COPA_RESULT) 
     ); 
    } 
receiver = new BroadcastReceiver() { 
      @Override 
      public void onReceive(Context context, Intent intent) { 
       int count = intent.getIntExtra(GCMIntentService.COPA_MESSAGE, 0); 
       int youCount = intent.getIntExtra(GCMIntentService.COUNT_YOU, 0); 
       int reqCount = intent.getIntExtra(GCMIntentService.COUNT_REQ, 0); 
       if (count != 0) { 
        notificationcount.setVisibility(View.VISIBLE); 
        notificationcount.setText("" + count); 
       } else { 
        notificationcount.setVisibility(View.GONE); 
       } 
       AppCommon.notification_requestcount = reqCount; 
       AppCommon.notification_youcount = youCount; 
       AppCommon.notification_total_count = count; 
      } 
     }; 

Что мне не хватает пожалуйста, предложите эту

+1

Вы пробовали что-нибудь? Если так, отредактируйте вопрос с этим, чтобы сэкономить голоса! – OBX

+1

Вы пытаетесь получить или отправить трансляцию в своей деятельности? –

+0

Рассмотрите возможность принятия ответа, если помогли .. !! – W4R10CK

ответ

0

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

@Override 
    protected void onStart() { 
     super.onStart(); 
     LocalBroadcastManager.getInstance(this).registerReceiver((receiver), 
       new IntentFilter(GCMIntentService.COPA_RESULT) 
     ); 
    } 

    @Override 
    protected void onStop() { 
     LocalBroadcastManager.getInstance(this).unregisterReceiver(receiver); 
     super.onStop(); 
    } 

receiver = new BroadcastReceiver() { 
      @Override 
      public void onReceive(Context context, Intent intent) { 
       int count = intent.getIntExtra(GCMIntentService.COPA_MESSAGE, 0); 
       int youCount = intent.getIntExtra(GCMIntentService.COUNT_YOU, 0); 
       int reqCount = intent.getIntExtra(GCMIntentService.COUNT_REQ, 0); 
       if (count != 0) { 
        notificationcount.setVisibility(View.VISIBLE); 
        notificationcount.setText("" + count); 
       } else { 
        notificationcount.setVisibility(View.GONE); 
       } 
       AppCommon.notification_requestcount = reqCount; 
       AppCommon.notification_youcount = youCount; 
       AppCommon.notification_total_count = count; 
      } 
     }; 
+0

Позвольте мне попробовать и проверить –

+0

Спешите !!! Его работа –

0

Создайте приемник внутри Activity и добавьте недвижимость. В то же время, если вы хотите, чтобы приемник был уничтожен, когда Activity уничтожен register и unregister по телефонам onResume() и onPause() соответственно.

Демо:

Создать BroadcastReceiver на вашей деятельности:

private BroadcastReceiver receiver = new BroadcastReceiver() { 
@Override 
public void onReceive(Context context, Intent intent) { 
     // your methods and actions for receiver 
    } 
}; 

Регистрация вещания в onCreate() методе вашей деятельности по:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.your_layout); 
    your_activity_.this.registerReceiver(receiver, new IntentFilter(your_filter_action)); 
    .. 
    ... 
    .... 
    } 

Не забудьте незарегистрированный/регистрации на цикле активность:

@Override 
protected void onResume() { 
    super.onResume(); 
    your_activity.this.registerReceiver(receiver, new IntentFilter(your_filter_action)); 

} 

@Override 
protected void onPause() { 
    super.onPause(); 
    your_activity.this.unregisterReceiver(receiver); 

} 
+1

Хорошо. Я попробую этот путь также для реализации функциональности –

+0

@Abhinavkorpal, подумайте о принятии ответа, если поможете! – W4R10CK

+0

@ WAR10CK уверен !!! –

0

Вы забыли отменить регистрацию своего вещательного приемника, пожалуйста, проверьте.

@Override 
    protected void onStop() { 
     LocalBroadcastManager.getInstance(this).unregisterReceiver(receiver); 
     super.onStop(); 
    } 
+0

Да! Правильное спасибо и его работа –

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