Dans quelles circonstances utiliserait aidl pour définir une interface de service être la bonne décision (plutôt que de créer une extension à la classe code> code> de classe)? p>
4 Réponses :
L'extension d'une classe de service ne permettra pas à votre service d'exposer ses méthodes à des entités extérieures. Si vous souhaitez que votre service soit exposé / utilisé par code qui est sorti de votre application Android, vous devrez définir un AIDL pour cela. Cet AIDL sera partagé et sera formé comme contrat pour votre service. Reportez-vous à ce http://developer.android.com/guide/components/aidl.html < / a>. p>
Mais en supposant que seule votre application utilise le service, il n'y a aucune raison d'utiliser AIDL - est-ce correct?
Correct. Mais alors pourquoi voudriez-vous créer un service dans ce cas non plus.
J'ai créé un service local dans mon application pour faire un téléchargement plus grand. De cette façon, je pourrais avoir encore plus de contrôle et de sécurité, alors une tâche asynchrone pouvant être tuée à chaque fois. Si je comprends bien, un service qui est lié à une activité n'est pas susceptible d'être tué si les ressources sont rares.
Vous devez utiliser AIDL si vous souhaitez une classe en dehors du processus de votre application pour accéder au service. Si vous utilisez uniquement le service à partir de votre application, vous pouvez utiliser un service local . P>
1.Quand utiliser un service basé sur le SIDL. P>
Quelques avantages peuvent être gagnés par segment une partie de votre code dans le service Backend: P>
2.Comment créer un tel service p>
J'ai écrit une bonne bibliothèque, vous pouvez faire référence à un exemple http://github.com/zhchang/hogwarts p>
La langue de définition d'interface Android (AIDL) permet aux développeurs de définir une interface de programmation que le client et le serveur utilisent pour communiquer entre eux à l'aide de la communication inter-processus (IPC). P>
Cet article montre comment se connecter à un service en cours d'exécution dans Android et comment récupérer les données du service distant / exécutant. P>
Soit RemoteService Soyez un service client et RemoteServiceClient être une activité pour communiquer avec le service à distance. P>
Un service fournit des informations sur les opérations mathématiques telles que l'ajout, la soustraction et la multiplication des deux entiers donnés. Pour exposer la fonctionnalité de quel service peut faire, créez un fichier .AID dans le répertoire de projet. P>
Exemple AidL P>
Une meilleure discussion sur l'utilisation de l'AIDL peut être trouvée ici. Stackoverflow.com/Questtions/8591281/Example-of-Aidl-Utilisation