2010-02-24 4 views
0

Le code que j'essaie de mettre en œuvre comprend un service et une application. Lorsque l'application est lancée pour la première fois, elle démarre le service à l'aide de l'appel startService (svc_name). Ici le nom svc est une intention pointant vers la classe qui exécute le service.Partage de ressources entre le service et l'application dans Android

Je souhaite partager une ressource (connexion fichier/socket) entre le service et l'application. Par exemple, on écrit dans un fichier et un autre en lit . Je n'arrive pas à synchroniser correctement le service et l'application.

Pourriez-vous s'il vous plaît me faire savoir comment cela peut être réalisé? Merci d'avance.

+1

"Le code que j'essaie de mettre en œuvre comprend un service et une application." - au lieu de "application", voulez-vous dire "activité"? Ou votre service et le reste de votre code sont-ils réellement dans deux applications distinctes? – CommonsWare

Répondre

0

La bonne façon de communiquer avec un service est via RPC. android RPC bibliothèque est très facile à travailler avec, il suffit de chercher des exemples Remoting dans ApiDemos.

+0

Cela n'est correct que si les fonctions 'Activity' et 'Service' sont dans des applications séparées. Il n'est pas clair à partir de la question si elles sont dans le cas de cette personne ou non. – CommonsWare

1

Si votre application et votre service sont deux applications indépendantes (fichiers .apk différents), vous pouvez utiliser aidl. L'aide vous permet d'envoyer et de recevoir des messages à travers les processus. Mais, si votre application (Activités) et votre service partagent le même processus (même fichier .apk), vous pouvez utiliser SharedPreference ou des membres statiques. SharedPreference est accessible par tous les threads de votre application et est persistante entre les exécutions.

http://developer.android.com/reference/android/content/SharedPreferences.html

Il ne peut gérer les types simples comme Boolean, Integer, Long, Float et cordes bien.

Questions connexes