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.*

Vous avez deux onReceive() méthodes ci-dessus.

OriginalL'auteur Donal Rafferty | 2010-05-31