2016-06-20 2 views
0

Я пытаюсь отправить трансляцию из параметра «Настройка фрагмента» и слушать ее в другом действии. Я начал работу с параметрами startActivityForResult из ActivityA. SettingsActivity имеет статический фрагмент SettingsFragment:Android: широковещательная передача не принимается в действии

public static class SettingsFragment extends PreferenceFragment { 
     @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      addPreferencesFromResource(R.xml.pref_general); 
      Preference rateApp = findPreference("rate_this_app"); 

      Preference abcd = findPreference("abcd"); 
      rateApp.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { 
       @Override 
       public boolean onPreferenceClick(Preference preference) { 

       } 
      }); 




     abcd.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { 
      @Override 
      public boolean onPreferenceClick(Preference preference) { 
       Intent intent = new Intent(getActivity(), ActivityA.class); 
       intent.setAction("abcd"); 
       getActivity().sendBroadcast(intent); 
      } 
     }); 
    } 
} 

Радиопередача отправлено из abcd.setOnPreferenceClickListener зарегистрирован в ActivityA но не получил там по какой-то причине. Это связано с тем, что активность в фоновом режиме означает, что он не будет получать трансляцию?

+0

@jankigadhiya Нет. Я знаю, как отправить широковещательную передачу, но эта не работает по какой-то причине. – crysis

+0

Если ваша операция приостановлена, она не будет получена. http://stackoverflow.com/questions/7890363/broadcastreceiver-and-paused-activity –

+0

Попробуйте отладить, проверьте, что OnDestory активности A уже вызван или нет? и показать активность Код для лучшего понимания –

ответ

0

Если ваша деятельность находится в состоянии паузы, вы не будете получать трансляцию.

Similar question

Альтернатива, которая зависит от вашей цели. Если ваша цель - изменить некоторые настройки в приложении, я бы сохранил его в SharedPreferences, как только пользователь внесет изменения. В методе ActiivityAonCreate я бы прочитал его от SharedPreferences. BroadcastReceivers используются для уведомления разработчика, если необходимо предпринять действия. Например, если изменение настройки изменит представления на экране пользователя, BroadcastReceiver будет полезен. Вы получите уведомление и обновите свой интерфейс. Если страница не отображается пользователю, вам это не понадобится.

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