Comment lancer un service Android au lancement de l'application?
Je suis encore frais pour Android et Id pense que la config ci-dessous fonctionne pour le lancement de mon service lorsque l'application est lancée.
<service android:name=".PlaylistUpdaterService">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</service>
Mais ce n'est pas le cas. Qu'ai-je manqué?
source d'informationauteur Teo Choong Ping
Vous devez vous connecter pour publier un commentaire.
Corrigez-moi si je me trompe, mais android.l'intention.de la catégorie.Le LANCEUR est valable uniquement pour l'Activité. Donc, ne ressemble pas valide façon de démarrer le Service. De même que vous pouvez obtenir si vous procédez de la manière suivante:
@android:style/Thème.NoDisplay
sous le Thème de la balise pour cette Activité dans AndroidManifest.xml.
onCreate()
de votre Activité.finish()
dansonStart()
de votre Activité pour le fermer.Donc, votre Activité sera invisible pour l'utilisateur, ce dernier peu de temps et personne ne s'en apercevra qu'il a été utilisé pour démarrer le service.
Mal! étendre la
Application
classe (c'est à dire faire votre propre), puis dans laonCreate()
méthode de le faire.Et faire un filtre d'intention de la merde hors de votre déclaration dans le fichier manifeste. Le laisser comme
Le filtre d'intention suivante doit être dans votre maison de l'activité
La raison pour laquelle vous faites c'est parce que le
Application
classe est lancé dès que l'application est, et agit comme une sorte de mondial classe le le android framework gère.En fait, si vous voulez que le service à exécuter chaque fois que vous revenez à votre écran d'accueil, vous devez démarrer le service dans votre maison classes
onResume()
. Mettre dans les applicationsonCreate()
va lancer le service uniquement si l'utilisateur lance pour la première fois, ou après le processus en cours d'exécution a été tué. Ou vous pourriez le mettre dans votre maison classesonCreate()
mais qui n'est même pas garanti à chaque fois.