Je commence à peine à développer Android, et j'ai une question à propos de la communication entre un récepteur et une classe d'activité. Je suis très nouveau sur JAVA et Android, donc j'espère ne pas paraître trop stupide. Je suis en train de développer une application dans laquelle j'intercepte un message SMS puis, en fonction des différents éléments de ce SMS, je pourrais le supprimer une fois enregistré dans la boîte de réception. J'ai une classe de récepteur qui intercepte le message txt, et je suis également capable de supprimer des messages de ma boîte de réception avec du code dans la classe d'activité en utilisant un bouton pour le moment. Le problème que j'ai est de communiquer entre la classe de récepteur et la classe d'activité où le code pour supprimer un message réside. J'ai essayé de mettre ce code directement dans la classe des récepteurs, mais je suis sûr que la plupart d'entre vous savent déjà que la classe BroadcastReceiver ne semble pas supporter ce dont j'ai besoin pour supprimer les messages. J'ai cherché une réponse à ceci pendant un moment, mais n'ai pas pu trouver n'importe quoi. Honnêtement, je ne suis pas sûr d'en savoir assez sur JAVA et Android pour reconnaître une solution si je l'ai vu.Android du récepteur à l'activité
Répondre
Si vous devez remplir un emploi sans un regard d'interface dans la création d'un Service
, si vous avez besoin interface utilisateur juste commencer une Activity
Vous pouvez utiliser le paramètre Context
de la méthode onReceive
du récepteur pour commencer une nouvelle service/activité
Vous pouvez utiliser Extras
pour passer des paramètres entre les contextes. Vous pouvez donc ajouter l'identifiant du message ou l'intégralité du message et le transmettre à votre service/activité et le traiter.
Vous pouvez implémenter la logique de gestion des messages à l'aide d'un IntentService. Lorsque votre destinataire reçoit le nouveau message, lancez IntentService en transmettant une intention avec les données du message.
Récepteur
onReceive(Context context, Intent intent) {
//Setup Intent
Intent i = new Intent(context, MyIntentService.class);
i.setAction(MyIntentService.HANDLE_MESSAGE);
//Pass data to intent
i.putExtra(MyIntentService.MESSAGE_DATA, data);
//Start Intent Service
context.startService(i);
}
MyIntentService
onHandleIntent(Intent i){
String action = i.getAction();
if(action != null && action.equals(MyIntentService.HANDLE_MESSAGE){
//Get data and implement message logic
}
}
Hope it helps.
- 1. comment utiliser l'intention du récepteur Android
- 2. Android + SMS Récepteur + Toast = FAIL
- 3. android 2.2 récepteur sms ne travaillera pas
- 4. Récepteur de diffusion onReceive() jamais appelé - Android
- 5. Android - Enregistrement d'un récepteur de diffusion pour deux intentions?
- 6. Envoi d'une intention du récepteur de diffusion vers un service en cours d'exécution dans Android
- 7. Android - Obtenir le contexte à partir d'un récepteur de diffusion onReceive() pour envoyer à
- 8. programme ir récepteur
- 9. Problème lors de l'acquisition du verrouillage de réveil à partir du récepteur de diffusion
- 10. Comment puis-je afficher une boîte de dialogue à partir d'un récepteur de diffusion Android?
- 11. Le contexte du récepteur d'événements pour Workflow n'est pas valide
- 12. Un récepteur pour les messages SMS envoyés?
- 13. Filtrage du récepteur de message JMS par JMSCorrelationID
- 14. Erreur d'application Facebook "URL du récepteur inter-domaine"
- 15. Sharepoint: Récepteur d'événement: Elément Ajout
- 16. Android - Extrait du texte de SMS
- 17. Erreur lors de la réception de SMS à l'aide du récepteur de diffusion
- 18. Quelle autorisation requise pour obtenir ACTION_HEADSET_PLUG à l'intérieur du récepteur de diffusion
- 19. Android Alarm Manager avec récepteur de diffusion enregistré dans le code plutôt que dans le manifeste
- 20. ne peut pas passer chaîne à récepteur CreateThread
- 21. Android Widget Clic et le récepteur de diffusion ne fonctionne pas
- 22. facebook d'erreur de récepteur de domaine croix
- 23. Comment je peux utiliser le récepteur de diffusion large en android
- 24. Comment faire passer la musique du récepteur au lieu du haut-parleur?
- 25. Récepteur de diffusion qui écoute le bouton de disque dur dans Android
- 26. Est-il possible d'écrire un récepteur de diffusion Android qui détecte quand le téléphone se réveille?
- 27. exemple Timezone dans le récepteur de diffusion
- 28. fonction Perl sachant type de récepteur
- 29. Recherche du nom du contact Android à partir du numéro
- 30. avertissement: type de récepteur non valide + sqlite3
Merci beaucoup pour la réponse rapide, c'est très apprécié. J'ai suivi votre conseil et une fois que je reçois le sms je commence un service pour supprimer certains messages. Le problème est que la fonction delete est appelée depuis la méthode onCreate du service. Il semble que cela permet uniquement d'exécuter la fonction de suppression la première fois que vous recevez un message txt. Les messages textuels suivants ne déclencheront pas la fonction de suppression, car je suppose que le service a déjà été créé. J'ai essayé de mettre l'appel de fonction dans une fonction onResume du service mais cela n'a pas fonctionné non plus. Avez-vous une idée comment – Patrick
Nevermind, j'ai déplacé l'appel de fonction à la méthode onStart et puis j'arrête le service une fois que j'ai fait ce que je veux faire et qui a résolu mon problème. – Patrick