Wie die übergabe von Daten aus service BroadcastReceiver in Android durch die Absicht
Ich versuche, rufen Sie einen BroadcastReceiver aus einem Dienst über die Absicht.
Rufe ich BroadcastReceiver wie folgt in meinem Dienst Datei :
final Handler handler = new Handler();
final Runnable r = new Runnable() {
public void run() {
//code here what ever is required
System.out.println("Runnnn");
counter++;
Intent i = new Intent();
i.setAction("Refresh");
Bundle b = new Bundle();
b.putInt("Counter", counter);
i.putExtra("Bundle", b);
ctx.sendBroadcast(i);
handler.postDelayed(this, 1000);
Toast.makeText(getApplicationContext(), "counter"+counter, Toast.LENGTH_LONG).show();
}
};
handler.postDelayed(r, 1000);
onReceive()
im BroadcastReceiver ist wie folgt:
public void onReceive(Context context, Intent arg1) {
System.out.println("OnReceiveeeeee");
if(arg1.getAction().equalsIgnoreCase("Refresh"))
{
System.out.println("Received Intent");
Bundle b = arg1.getExtras();
c=b.getInt("Counter");
System.out.println("Counter in Receiver:::"+c);
}
}
Aber ich bin immer mit dem Wert in der onReceive als null.
Jede Hilfe ist willkommen um den richtigen Wert in der onReceive () - Methode.
wartet auf Antwort.
- Ich mache etwas ähnliches HIER!!! stackoverflow.com/questions/14571564/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Sie zugreifen, in der falsche Weg.
Benötigen Sie den Zugriff wie folgt.
================================================
Alternativ können Sie Ihren code schreiben, ohne die Verwendung von bundle auch:
In Service
In BroadcastReceiver
hier die snippets des Codes, die ich verwenden, um broadcast eine Abmeldung auffordern, alle meine apps-Aktivitäten zu schließen, wenn Sie gehen zurück zum login-Bildschirm
Ich hoffe, der code hilft Ihnen, sich immer deins funktioniert?
Edit: aktualisiert
putExtra()
undgetStringExtra()/getIntExtra()
i.putExtra("Counter", 100);
und Empfänger zuintent.getIntExtra("Counter", 0)
und nun perfekt funktioniert. die Aktualisierung meiner vollständiges Beispiel jetzt...