I'm trying to send a broadcast from Setting Fragment and listen to it in another activity. I started settings activity with startActivityForResult from ActivityA. SettingsActivity has a static fragment SettingsFragment:
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);
}
});
}
}
The broadcast sent from abcd.setOnPreferenceClickListener is registered in ActivityA but it is not being received there for some reason. Is it because the activity is in backstack that it won't receive broadcast?