J'ai le scénario suivant dans mon application. Il n'y a pas d'interface utilisateur dans mon application; à la place, il y a un service qui démarre au démarrage et fonctionnera en continu.
Comment puis-je configurer mon fichier manifeste sans activité principale? Puis-je lancer mon application sans aucune activité? Et au lancement de mon application, mon service devrait démarrer. Est-ce possible?
Je ne souhaite pas créer d'activité translucide pour démarrer le service.
Réponses:
Vous avez dit que vous ne vouliez pas utiliser d'activité translucide, mais cela semble être la meilleure façon de le faire:
Theme.Translucent.NoTitleBar
.setContentView()
.onCreate()
, démarrez votre service avecstartService()
.finish()
une fois que vous avez démarré le service.En d'autres termes, votre activité n'a pas besoin d'être visible; il peut simplement s'assurer que votre service est en cours d'exécution, puis quitter, ce qui ressemble à ce que vous voulez.
Je recommande vivement d'afficher au moins une notification Toast indiquant à l'utilisateur que vous lancez le service ou qu'il est déjà en cours d'exécution. C'est une très mauvaise expérience utilisateur d'avoir une icône de lanceur qui semble ne rien faire lorsque vous appuyez dessus.
la source
Oui, vous pouvez le faire en créant simplement un
BroadcastReceiver
qui appelle votreService
lorsque votre application démarre. Voici une réponse complète donnée par moi.Android - Démarrer le service au démarrage
Si vous ne voulez aucune icône / lanceur pour votre application, vous pouvez le faire également, ne créez simplement aucune activité avec
Déclarez simplement votre
Service
comme déclaré normalement.la source
Service
le démarrage, mais veut savoir comment ne pas avoir de mainActivity
, mais assurez-vous simplement que leService
est en cours d'exécution lorsque l'icône du lanceur est enfoncée.La raison de créer une application sans activité ni service pourrait être la création d'une application Widget d'écran d'accueil qui n'a pas besoin d'être démarrée.
Une fois que vous démarrez un projet, ne créez aucune activité. Après avoir créé le projet, appuyez simplement sur Exécuter. Le studio Android dira
No default activity found
.Cliquez sur Modifier la configuration (dans le menu Exécuter ) et dans la partie Option de lancement, définissez la valeur de lancement sur Rien . Cliquez ensuite sur OK et exécutez l'application.
( Comme il n'y a pas d'activité du lanceur, aucune application ne sera affichée dans le menu Applications. ).
la source
Android Studio version 2.3
Vous pouvez créer un service sans activité principale en suivant quelques étapes simples. Vous pourrez installer cette application via Android Studio et la déboguer comme une application normale.
Tout d'abord, créez un projet dans Android Studio sans activité. Créez ensuite votre classe Service et ajoutez le service à votre AndroidManifest.xml
Maintenant, dans le menu déroulant à côté du bouton "Exécuter" (flèche verte), allez dans "Modifier les configurations" et dans les "Options de lancement" choisissez "Rien". Cela vous permettra d'installer votre service sans qu'Android Studio ne se plaint de ne pas avoir d'activité principale.
Une fois installé, le service ne fonctionnera PAS mais vous pourrez le démarrer avec cette commande adb shell ...
Peut vérifier qu'il fonctionne avec ...
Je n'ai pas encore essayé, mais vous pouvez probablement demander à Android Studio de démarrer automatiquement le service également. Cela serait fait dans le menu "Modifier les configurations".
la source