2014-05-04 13 views
5

wyślę rozsyłania wykonując:BroadcastReceiver - onReceive Nie miano

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

Jest to usługa, która owija się na AsyncTask kursujący Transmisje powyższego:

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

W mojej działalności, ja zarejestrować Receiver w onResume:

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

The `BroadRe ceiver wygląda następująco:

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); 
    } 
} 

Urządzenie onReceive nigdy nie zostało wyrzucone. Co ja robię źle?

Odpowiedz

6

Albo użyj LocalBroadcastManager w obu miejscach (sendBroadcast() i registerReceiver()), albo nie używaj w ogóle LocalBroadcastManager. W tej chwili masz niedopasowaną parę.

+0

Urządzenie onReceive jest teraz uruchamiane, ale nie pokazuje tosty na ekranie ... Jak to możliwe? – Subby

+0

Aby wyświetlić toast, użyj kontekstu w następujący sposób: Toast.makeText (kontekst, .... –

+0

Nadal nie działa.To trafienie onReceive i uruchamianie kodu Toast, ale nie widzę toastu – Subby

Powiązane problemy