2016-09-20 6 views
0

Ich verstehe nicht, was mit diesem Code falsch ist.Warum LocalBroadcastManager von Android nicht ausgeführt wird?

Der Zuhörer ist in der onCreate der Aktivität:

private BroadcastReceiver receiver; 
private Context context; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.activity_main); 
    context = getApplicationContext(); 

    receiver = new BroadcastReceiver() { 
     @Override 
     public void onReceive(Context context, Intent intent) { 

      Log.e("MAIN onCreate: ", "It is never shown."); 

     } 
    }; 
} 

Das Register im onResumen der Aktivität:

@Override 
protected void onResume() { 
    super.onResume(); 
    registerReceiver(receiver, new IntentFilter("receiveMyService")); 
} 

Der Sender ist in einem Knopf, und ich kann das Log sehen funktioniert einwandfrei, aber mit dem Wert von test als false:

Warum der Code der BroadcastReceiver - onReceive läuft nie?

+0

Beitrag vollständigen Code –

Antwort

1

Weil Sie ein Register BroadcastReceiver kein LocalBroadcastReceiver
diese ersetzen:

registerReceiver(receiver, new IntentFilter("receiveMyService")); 

mit diesem

LocalBroadcastManager.getInstance(this).registerReceiver(receiver, new IntentFilter("receiveMyService")); 
+0

noch nicht arbeiten. – andres83

Verwandte Themen