web-dev-qa-db-fra.com

Application Android en tant que service sans activité

Je crée un ensemble d'applications et j'ai à peu près le même service d'arrière-plan pour toutes.

J'essaie de faire une application qui n'a que ce Service. donc je ne le répète pas dans tous, mais le fait est que vous n’avez pas besoin de Activity. car il n'y a pas d'interface utilisateur nécessaire pour cela, et donc l'utilisateur ne peut pas la fermer sauf s'ils arrêtent le Service.

J'ai essayé de supprimer Activity, mais l'application ne s'exécute ni ne démarre . Ma question est la suivante: puis-je créer une application identique à Google Play Services afin que d'autres applications puissent utiliser son Service.

Si oui, un extrait ou un échantillon serait la bienvenue.

24
iLyas

Sûr! Aucune raison pour laquelle vous ne pouvez pas avoir une application avec seulement un service. ... et nul besoin d'entrer dans AIDL sauf si vous le souhaitez.

Le problème est de savoir comment faire fonctionner l'application. Lorsque vous créez une application avec une activité, vous ajoutez un filtre d'intention, dans le manifeste, qui permet de démarrer l'activité à partir du programme de lancement. S'il n'y a pas d'activité, vous devrez trouver un autre moyen de le démarrer.

C'est facile à faire, cependant. Lancez simplement l'intention de l'un de vos autres programmes, comme ceci:

startService(new Intent("my.service.intent"));

... où le service est enregistré dans votre manifeste, comme ceci:

        <service Android:name=".SomeService" >
          <intent-filter>
            <action Android:name="my.service.intent"/>
          </intent-filter>

Vous pouvez utiliser cette intention pour transmettre des paramètres colisables au service, et le service peut répondre en retransmettant des intentions.

Bien entendu, startService et broadcastIntent sont un peu gênants si vous avez vraiment besoin d'une API complexe entre les applications et votre service. Si vous avez besoin de quelque chose de plus riche, vous voulez voulez vous pencher sur AIDL et un service lié.

Modifié pour ajouter un filtre d'intention

26
G. Blake Meike

Oui, je pense que vous recherchez AIDL. Regardez ce fil?

https://groups.google.com/forum/#!topic/Android-developers/LuWPZjPZ0sk

0
Mattias Backman