Question

Je fais une demande qui a une activité qui communique avec un seul service, et est utilisé pour commencer, les paramètres d'arrêt ou changement de ce service. J'ai utilisé une approche singleton de cette astuce .

Mon problème est que attente active ne fonctionne pas pour moi et je ne peux pas joindre un auditeur au service parce que l'activité est bloqué. Je veux que le service démarre ou l'obtenir instance en cours au démarrage de l'application, donc je mets le occupé en attente dans onCreate. Je devine que je fais cela très mal, alors comment puis-je faire correctement?

Aussi, s'il y a une meilleure approche à cela, s'il vous plaît poster des liens ou des guides, parce que je suis getn confus sur le site développeur Android: P

merci!

Était-ce utile?

La solution

  

J'utilisé une approche singleton de cette astuce.

Ne fais pas ça. Utilisez bindService() et le motif de liaison locale à la place, et vous serez averti lorsque le service est prêt. Vous obtenez également l'accès à une API publiée par le service et peut commencer à l'utiliser une fois que vous êtes lié.

Autres conseils

Le problème est l'un des programmes événementielle procédurale par rapport, Android est l'interface utilisateur construit au plus tard.

onCreate est un événement. La notification d'une connexion de service est aussi un événement. Vous ne serez pas livré la notification de connexion de service (même si il est arrivé) jusqu'à ce que vous revenez de onCreate.

Pouvez-vous partager votre démarrage d'activité en deux parties, la première fait dans onCreate et la seconde en réponse à la connexion de service?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top