2014-05-04 6 views
5

mando un Broadcast facendo:BroadcastReceiver - Non OnReceive essere chiamato

Intent intent = new Intent("com.usmaan.myApp.DATA_RECEIVED"); 
intent.putExtra("matchId", newRowId); 
LocalBroadcastManager.getInstance(mContext).sendBroadcast(intent); 

Questo è il servizio che avvolge il AsyncTask che gestisce le trasmissioni di cui sopra:

<service 
    android:name=".services.DataService" 
    android:exported="false" /> 

nella mia attività, ho registrare un Receiver in onResume:

IntentFilter intentFilter = new IntentFilter("com.usmaan.myApp.DATA_RECEIVED"); 
registerReceiver(mDataReceiver, intentFilter); 

Il `BroadRe RICEVITORE assomiglia a questo:

private class DataReceiver extends BroadcastReceiver { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     final long matchId = intent.getLongExtra("matchId", 0); 
     Toast.makeText(LaunchActivity.this, "" + matchId, Toast.LENGTH_LONG); 
    } 
} 

Il onReceive è mai sparato. Che cosa sto facendo di sbagliato?

risposta

6

usare sia LocalBroadcastManager in entrambi i posti (sendBroadcast() e registerReceiver()), o non utilizzare LocalBroadcastManager affatto. In questo momento, hai una coppia non corrispondente.

+0

L'onReceive è ora in fase di attivazione ma non mostra Toast sullo schermo .... come mai? – Subby

+0

Per mostrare il Toast, utilizzare un contesto come questo: Toast.makeText (context, .... –

+0

Ancora non funziona Si sta premendo suRicevi ed esegui il codice Toast ma non vedo uno Toast. – Subby