ich LocalBroadcastManager bin mit Broadcast an meine activtiy und Dienstleistungen machen Anwendungskontext verwendet wird, wie folgt aus:LocalBroadcastManager nicht empfangen Sendungen in einer Aktivität
public class CommonForApp extends Application{
public void broadcastUpdateUICommand(String[] updateFlags,
String[] flagValues) {
Intent intent = new Intent(UPDATE_UI_BROADCAST);
for (int i = 0; i < updateFlags.length; i++) {
intent.putExtra(updateFlags[i], flagValues[i]);
}
mLocalBroadcastManager = LocalBroadcastManager.getInstance(mContext);
mLocalBroadcastManager.sendBroadcast(intent);
}}
nun einen Zuhörer in meinem Service, ich rufe broadcastUpdateUICommand (), wie folgt aus:
public class mService extends Service {
public BuildNowPLaylistListListener buildCursorListener = new BuildNowPLaylistListListener() {
@Override
public void onServiceListReady() {
mApp.broadcastUpdateUICommand(
new String[] { CommonForApp.INIT_DRAWER},
new String[] {""});
}}}
Und ich die Sendung in meiner Tätigkeit erhält, wie folgt aus:
public class mActivity extends Activity{
BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
mtoast.showtext("in onreceive"); //toast to check
if (intent.hasExtra(CommonForApp.INIT_DRAWER))
initialiseDrawer();
}};
}
mApp ist Instanz der Anwendung. CommonForApp ist meine Anwendungsklasse.
Aber in meiner Aktivität empfange ich keine Broadcast (der Broadcast-Manager wird mit Anwendungskontext initialisiert).
Kann mir jemand vorschlagen, warum ich in meiner Tätigkeit keine Sendung bekomme? ..
. Vielen Dank im Voraus!
Grund für Downvote ... Plz –
Ist die 'Activity' laufen, wenn Sie die Sendung schicken? Sind Sie sicher, dass Sie den Receiver mit dem richtigen 'IntentFilter' in der' Activity' registrieren? Warum sendest du nicht einfach direkt aus dem 'Service'? –
Wo ist die Registrierung für Nachrichten in Aktivität? –