Ich versuche, eine Sendung von Setting Fragment zu senden und höre sie in einer anderen Aktivität an. Ich habe die Einstellungsaktivität mit startActivityForResult von ActivityA gestartet. SettingsActivity hat ein statisches Fragment SettingsFragment:Android: Broadcast wird nicht in Aktivität
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);
}
});
}
}
Die Sendung von abcd.setOnPreferenceClickListener gesendet wird, in ACTIVITYA registriert, aber es ist dort nicht aus irgendeinem Grund empfangen. Liegt es daran, dass die Aktivität im Backstack ist und keine Broadcasts empfangen wird?
@jankigadhiya Nein. Ich weiß, wie man Broadcast senden, aber dieses funktioniert nicht aus irgendeinem Grund. – crysis
Wenn Ihre Aktivität pausiert ist, wird sie nicht empfangen. http://StackOverflow.com/Questions/7890363/broadcastreceiver-and-paused-activity –
Versuchen Sie zu debuggen, überprüfen Sie, ob Activity A onDestory bereits angerufen wird oder nicht? und zeige Aktivität Ein Code zum besseren Verständnis –