J'ai un service qui écoute le téléphone. Lorsque le téléphone passe au ralenti, je veux envoyer un message à mon activité. Il semble que j'ai deux options pour y parvenir. BroadcastReceiver et liaison au service. BroadcastReceiver ressemblait à un mécanisme plus facile, j'ai donc essayé le test suivant.Quel est le moyen le plus simple d'envoyer un message du service local à l'activité
Dans mon activité:
@Override
protected void onStart() {
super.onStart();
IntentFilter filter = new IntentFilter("MyAction");
registerReceiver(new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Log.d(TAG, "Yay.......");
abortBroadcast();
}
}, filter);
}
Dans mon service qui est à l'écoute des événements, quand je perçois mon événement désiré:
Intent localIntent = new Intent(_context, MainActivity.class);
intent.setAction("MyAction");
_context.sendOrderedBroadcast(localIntent, null);
Dans mon test, la méthode OnReceive() est jamais appelé après avoir regardé l'émission envoyée avec le débogueur. Qu'est-ce que je rate? En outre, un BroadcastReceiver est-il le moyen le plus simple pour un service local de communiquer avec une activité?
fait votre manifeste avoir le approprié? –
aprock