2011-06-22 2 views
1

J'ai une classe qui étend le récepteur de diffusion. Ma question est comment vais-je faire appel à cette activité dans une autre classe ... J'ai essayé de créer une intention pour cela mais j'ai continué à obtenir une erreur de syntaxe. Est-ce une autre façon de démarrer le récepteur de diffusion?Comment lancer un récepteur de diffusion?

+1

Pourriez-vous indiquer quelle erreur de syntaxe obtenez-vous? –

+0

Lorsque vous parlez d'une erreur, c'est toujours une bonne idée de publier la description exacte de l'erreur et le code. – mibollma

+0

Veuillez poster votre fichier manifeste et le code d'intention que vous invoquez. – advantej

Répondre

2

Vous devez utiliser

Intent intent = new Intent("mypackage.myaction"); 
activity.sendBroadCast(intent); 

Lorsque l'activité est celui qui lance votre BroadcastReceiver et l'intention, une intention qui correspond au filtre de votre BroadcastReceiver dans votre fichier manifeste.

Vous allez faire quelque chose qui ressemble à:

<receiver android:name="your broadcast receiver class" android:label="a name"> 
    <intent-filter> 
     <action android:name="mypackage.myaction" /> 
    </intent-filter> 
</receiver> 

Cordialement, Stéphane

+0

Comment mon filtre d'intention apparaîtrait-il dans le manifeste? pour un récepteur de diffusion? – theITRanger22

2
IntentFilter filter = new IntentFilter("com.mydefinepackage.myactivity"); 
this.registerReceiver(new Receiver(), filter); 

déclarer cette classe privée et utiliser au-dessus du code dans l'activité de MyActivity.

private class Receiver extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context arg0, Intent arg1) { 
     myOwnMethod(); 
    } 
} 

Exécutez ce code à partir de toute autre activité. myOwnMethod sera appelé alors.

Intent i =new Intent("com.mydefinepackage.myactivity"); 
sendBroadcast(i); 
Questions connexes