Démarrer un service après le boot de l'appareil

 

En fait, il s'agit de mettre en oeuvre différentes choses...

 

Dans le fichier AndroidManifest.xml, il faut positionner une permission:

<uses-permission androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...):name="android.permission.RECEIVE_BOOT_COMPLETED" />

Cette permission demande à ce que votre application soit autorisée à être informée lorsque l'appareil a terminé de s'initialiser.

Pour recevoir cette information, il faut créer un broadcast receiver:

 

C'est ce broadcast receiver qui lancera notre service,

 

Il reste à déclarer ce broadcast receiver dans le fichier AndroidManifest.xml entre les balises applications:

<receiver androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...):name="com.example.MonBroadcastReceiver">
<intent-filter>
<action androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...):name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>

Faire de même avec le service:

<service androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...):name="fr.free.supertos.service.MonServiceAutoRun" />

Dans le service, vous pourrez alors lancer un thread lors du onCreate du service. Thread qui dort et boucle sur lui même, avec un handler pour pouvoir communiquer avec le service par exemple.

 

... et le tour est joué !

Image non trouvée !Le service bouclant dans son thread, celui-ci est passé en premier plan afin de ne pas se faire détruire au bout d'un certains temps par le système.