Comment fonctionne Broadcast Receiver
Broadcast Receiver s’exécute en arrière-plan et n’a pas d’interface utilisateur. Ils sont conçus pour répondre aux Broadcast Intent rapidement et efficacement. Voici quelques points clés sur le fonctionnement de Broadcast Receiver :
1. Inscription :
- Broadcast Receiver devez être enregistré sur le système Android pour répondre à Broadcast Intent.
- L’enregistrement peut se faire soit statique (via AndroidManifest.xml), soit dynamique (via le code du programme).
Exemple d’enregistrement statique dans AndroidManifest.xml :
<receiver android :name=“.MyBroadcastReceiver”>
<intent-filter>
<action android :name=“android.intent.action.BATTERY_LOW” />
</intent-filter>
</receiver>
Exemple d’inscription dynamique dans le code :
IntentFilter filter new IntentFilter(Intent.ACTION_BATERY_LOW) ;
MyBroadcastReceiver receiver new MyBroadcastReceiver() ;
registerReceiver(receiver, filter) ;
2. Temps d’exécution limité :
- Broadcast Receiver n’avais que 5 secondes environ pour accomplir la tâche.
- Si une tâche prend plus de temps, comme le téléchargement de données ou le traitement de fichiers, nous vous recommandons de commencer Service ou d’utiliser WorkManager.
3. Tâches réalisables :
- Envoyer des notifications : informez les utilisateurs des changements d’état, tels que la batterie faible ou les connexions Internet.
- Démarrer le service : démarrez le service pour effectuer des tâches en arrière-plan, telles que la synchronisation des données.
- Mettre à jour les données : mettez à jour les données locales ou envoyez les données à un serveur.
Types d’intention de diffusion
Broadcast Intent peuvent être divisés en deux types :
1. Normal Broadcast :
- Envoyé de manière asynchrone à tous les Broadcast Receiver enregistrés.
- Exemple : ACTION_BOOT_COMPLETED (envoyé à la fin du démarrage de l’appareil).
2. Ordered Broadcast :
- Envoyé séquentiellement à un Broadcast Receiver à la fois.
- Broadcast Receiver pouvez modifier les résultats ou arrêter la propagation de Broadcast Intent.
- Exemple : ACTION_NEW_OUTGOING_CALL (envoyé lorsqu’un utilisateur passe un appel sortant).
Exemples d’utilisation d’un récepteur de diffusion
1. Réagir aux changements de batterie :
- Broadcast Receiver peut détecter quand la batterie de l’appareil est faible (ACTION_BATTERY_LOW) ou en charge (ACTION_BATTERY_OKAY).
- Exemple : Envoi d’une notification à l’utilisateur lorsque la batterie est faible.
2. Répondre aux changements de connectivité réseau :
- Broadcast Receiver peut détecter les changements de connexion Internet (ACTION_CONNECTIVITY_CHANGE).
- Exemple : Affiche un message lorsqu’un appareil perd sa connexion Internet.
3. Répondre aux SMS entrants :
- Broadcast Receiver peut détecter les SMS entrants (ACTION_SMS_RECEIVED).
- Exemple : Affichez des notifications ou traitez automatiquement les SMS.
5. Service : Processus d’arrière-plan sans interface utilisateur
Service’est un composant essentiel d’une application Android qui vous permet d’exécuter des tâches en arrière-plan sans interface utilisateur. Service est idéal pour les tâches qui doivent continuer à s’exécuter même lorsque l’application est en panne, telles que la diffusion de musique, la synchronisation de données ou les mises à jour de localisation.
En utilisant Service, vous pouvez vous assurer que votre application continue de fonctionner correctement, même lorsque les utilisateurs n’interagissent pas directement avec l’application.
Types de services
Service peuvent être divisés en deux types principaux :
1.Started Service
Started Service est un type de Service qui est démarré par un autre composant, tel que Activity ou Broadcast Receiver, et qui continuera à s’exécuter jusqu’à ce que la tâche soit terminée.
Comment ça marche :
- Started Service commence par l’appel de la méthode startService().
- Service s’exécutera en arrière-plan jusqu’à ce que la tâche soit terminée ou arrêtée manuellement.
- Une fois la tâche terminée, le Service s’arrêtera automatiquement.
Exemple de code :
Intent intent =new Intent(this, MyStartedService.class) ;
startService(intent) ;
2. Bound Service
Bound Service est un type de Service qui se lie à d’autres composants, tels que Activity ou Fragment, et qui s’exécutera tant que ces composants seront actifs.
Comment ça marche :
- Bound Service commence par appeler la méthode bindService().
- Service fonctionnera tant qu’il y aura des composants qui y sont attachés.
- Si tous les composants libèrent la liaison, le Service s’arrêtera automatiquement.
Exemple de code :
Intent intent =new Intent(this,MyBoundService.class) ;
bindService(intent, serviceConnection, Context.BIND_AUTO_CREATE) ;