J'essaie juste ce petit projet d'exemple, tout ce qu'il fait : L'activité 1 a un bouton qui envoie une diffusion. L'activité 2 affiche un toast lorsqu'il est reçu. Voici le code, la diffusion n'est jamais reçue. Qu'est-ce qui ne va pas ?
Envoi de la diffusion
public class SendBroadcast extends Activity {
public static String BROADCAST_ACTION = "com.unitedcoders.android.broadcasttest.SHOWTOAST";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public void sendBroadcast(View v){
Intent broadcast = new Intent();
broadcast.setAction(BROADCAST_ACTION);
sendBroadcast(broadcast);
}
}
Le recevoir
public class ToastDisplay extends Activity {
private BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(getApplicationContext(), "received", Toast.LENGTH_SHORT);
}
};
@Override
protected void onResume() {
IntentFilter filter = new IntentFilter();
filter.addAction(SendBroadcast.BROADCAST_ACTION);
registerReceiver(receiver, filter);
super.onResume();
}
@Override
protected void onPause() {
unregisterReceiver(receiver);
super.onPause();
}
}
Manifeste
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".SendBroadcast" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".ToastDisplay">
<intent-filter>
<action android:name="com.unitedcoders.android.broadcasttest.SHOWTOAST"></action>
</intent-filter>
</activity>
</application>
0 votes
Avez-vous trouvé une réponse à cette question ? J'ai le même problème. J'ai en fait un service local qui diffuse une intention que l'activité actuellement ouverte écoute (en enregistrant un récepteur de diffusion, comme vous le faites ci-dessus). L'activité ne reçoit jamais le message. Je n'ai rien mis dans le manifeste, mais comme j'enregistre le récepteur de diffusion, je ne pensais pas avoir besoin de le faire. Avez-vous réussi à faire fonctionner le vôtre ?
0 votes
Merci. Il s'avère que mon question en était une autre, qui consistait à spécifier des types MIME.
0 votes
Je suis en train de chercher la même chose et j'ai implémenté le code ci-dessus, mais il ne fonctionne pas, ce qui signifie que Broadcat envoie des données à d'autres activités.
0 votes
Broadcat n'envoie pas vers d'autres activités
0 votes
Bonjour Garret Wilson, avez-vous trouvé la solution à ce problème ?
0 votes
Hehhe vous ne verrez jamais le
Toast
avec ce code puisque vous n'avez pas appeléshow();
0 votes
Voir ce lien très bon stackoverflow.com/questions/15698790/