0

У меня есть вещательный приемник в моем классе фрагмента, и я определил его как:Регистрация вещательный приемник в другом классе, откуда она определяется

private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() { 
     @Override 
     public void onReceive(Context context, Intent intent) { 
      updateUI(intent); //calling function  
     }}; 

и я зарегистрировал этот вещательный приемник в одном фрагменте, как:

getActivity().registerReceiver(broadcastReceiver, new IntentFilter(
      Server.UDP_BROADCAST)); 

Мое требование состоит в том, чтобы зарегистрировать этот вещательный приемник в основном действии этого фрагмента, пожалуйста, помогите мне достичь своей цели эффективно. Как это сделать. С уважением Талиб.

+0

Вы уже делали это с помощью «getActivity(). RegisterReceiver()»? – for3st

+0

Вы уже сделали то, что хотите. Вы регистрируете широковещательный прием, используя ссылку своей деятельности, вызывая getActivity() ... –

+0

, но мне это действительно не нужно. Я специально хочу зарегистрировать его в основной деятельности без активности, поскольку, насколько я знаю 't открыть этот фрагмент, приемник не регистрируется, и я хочу зарегистрировать его при открытии приложения. @KhawarRaza – Talib

ответ

0

Если вы хотите, чтобы ваш BroadcastReceiver получить намерения не Mather, где вы находитесь в вашем приложении, зарегистрировать его в Application

из документации:

Там обычно нет необходимости подкласс Application. В большинстве случаев статические синглтоны могут обеспечивать такую ​​же функциональность в более модульном способе . Если вашему singleton нужен глобальный контекст (например, для регистрации широковещательных приемников), функция для извлечения может быть предоставлена ​​ Контекст, который внутренне использует Context.getApplicationContext(), когда сначала конструирует синглтон.

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

  • Нет связанных вопросов^_^