2010-07-12 5 views

Répondre

1

Appel d'une méthode RPC Binder dans Android est threadsafe, vous pouvez émettre l'appel à partir de plusieurs threads sans synchronisation. Du côté de la réception - en supposant que le Service soit dans un processus différent comme d'habitude - vous recevez des appels d'un groupe de threads Binder, quelle que soit la manière dont il a été appelé du côté des appelants. Cela signifie que votre service peut avoir plusieurs appels en cours simultanément, alors soyez prudent de ce côté.

Plus d'info dans Android Docs: Processes and Threads

3

Un service Borné est mis en œuvre en utilisant la classe Binder si nous voulons client et le service à exécuter dans le même processus et ne veulent pas effectuer IPC simultané dans différentes applications. Ainsi, le thread (dans le client) qui appelle la méthode de service sera bloqué jusqu'à son retour. Il peut y avoir plusieurs threads engendrés dans le client (activité) par programme, chacun appelant la méthode de service à tout instant. Par conséquent, le service doit être implémenté de telle sorte qu'il soit compatible avec les threads car plusieurs threads peuvent appeler la méthode de service à la fois. Conclusion is android ne s'occupe pas de la synchronisation lorsque la classe Binder est étendue pour implémenter le service borné.

Un service borné est implémenté en utilisant AIDL si nous voulons permettre aux clients de différentes applications d'accéder au service pour IPC et de gérer le multithreading dans le service. Conclusion est android ne prend pas soin de la synchronisation lorsque AIDL est utilisé pour implémenter le service borné.

Questions connexes