Android - sendOrderedBroadcast aider
Je suis en train d'utiliser un sendOrderedBroadcast dans mon application Android.
Je veux être en mesure d'envoyer l'Intention de l'un de mes demandes à l'autre et je veux la récupérer des données à partir de l'Application qui reçoit l'Intention, dans ce cas, une valeur booléenne true ou false.
Voici le code actuel:
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);
Est-ce la bonne façon d'atteindre ce que je veux?
Si oui que dois-je utiliser comme resultReceiver* paramètre? (3ème paramètre)
Et puis comment je recevoir des données à partir de la Radiodiffusion?
J'ai fait un rapide google et de ne pas venir avec des exemples, de l'aide ou des exemples très apprécié.
CODE MIS À JOUR:
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);
}
Donc, d'après la Doc que je devrait recevoir 100 de retour dans mon DomainBroadcast récepteur, mais on en revient toujours à 0.
Peut-on savoir pourquoi?
**resultReceiver - Votre propre BroadcastReceiver à traiter comme le destinataire final de l'émission.*
onReceive()
méthodes ci-dessus.OriginalL'auteur Donal Rafferty | 2010-05-31
Vous devez vous connecter pour publier un commentaire.
Vous devez obtenir le plus de données de résultats de Bundle et ajouter vos données.
Essayer quelque chose comme cela:
Qui produit le résultat désiré:
OriginalL'auteur Tim Kryger