Ich versuche, eine sendOrderedBroadcast in meiner Android App zu verwenden.Android - sendOrderedBroadcast Hilfe
Ich möchte in der Lage sein, den Intent von einer meiner Anwendungen zu einer anderen zu senden, und ich möchte dann Daten von der Anwendung abrufen, die die Absicht erhält, in diesem Fall eine boolesche wahr oder falsch.
Hier ist der aktuelle Code:
Intent i = new Intent();
i.setAction(GlobalData.PROPOSE_IN_DOMAIN_ROAM_INTENT);
i.putExtra("com.testnetworks.QCLEVEL", aProposedTheoreticalQoSLevel);
sendOrderedBroadcast(i, null, null, null, Activity.RESULT_OK, null, null);
Ist dies der richtige Weg zu erreichen, was ich will?
Wenn ja, was verwende ich als Parameter resultReceiver *? (3. Parameter)
Und dann, wie bekomme ich Daten zurück von der Sendung?
Ich habe eine schnelle Google und habe keine Beispiele, keine Hilfe oder Beispiele sehr geschätzt.
AKTUALISIERT Code:
sendOrderedBroadcast(i, null, domainBroadcast, null, Activity.RESULT_OK, null, null);
class DomainBroadcast extends BroadcastReceiver{
@Override
public void onReceive(Context arg0, Intent intent) {
String action = intent.getAction();
if(GlobalData.PROPOSE_IN_DOMAIN_ROAM_INTENT.equals(action)){
Log.d("BROADCAST", "Returning broadcast");
Bundle b = intent.getExtras();
Log.d("BROADCAST", "Returning broadcast " +
b.getInt("com.testnetworks.INT_TEST"));
}
}
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if(GlobalData.PROPOSE_IN_DOMAIN_ROAM_INTENT.equals(action)){
Bundle b = intent.getExtras();
int testQCLevel = b.getInt("com.testnetworks.QCLEVEL");
switch(testQCLevel){
case 1:
Log.d("QCLevel ", "QCLevel = UNAVAILABLE");
break;
case 2:
Log.d("QCLevel ", "QCLevel = BELOWUSABILITY");
break;
case 3:
Log.d("QCLevel ", "QCLevel = VOICE");
break;
}
intent.putExtra("com.testnetworks.INT_TEST", 100);
}
So nach dem ich Doc sollte Erhalten Sie 100 zurück in meinem DomainBroadcast Empfänger, aber es kommt immer als 0 zurück.
Kann jemand sehen warum?
** resultReceiver -. Ihre eigenen BroadcastReceiver als endgültiger Empfänger der Sendung zu behandeln *
Sie haben zwei 'OnReceive()' Methoden oben. – JRL