Android: Comment Appeler la Fonction de l'Activité à partir d'un Service?
J'ai une Activité (A) et un Service (S) qui débute par Un comme ceci:
Intent i = new Intent();
i.putExtra("updateInterval", 10);
i.setClassName("com.blah", "com.blah.S");
startService(i);
Une ont une fonction comme celle-ci dans Un:
public void someInfoArrived(Info i){...}
Maintenant, je veux appeler A. someInfoArrived(i) à partir de S.
L'intention.putExtra a pas de version où j'ai pu passer une référence d'Objet etc ...
S'il vous plaît aider!
PS: dans L'autre sens (Un bureau de vote S pour de nouvelles infos) n'est PAS ce dont j'ai besoin. J'ai trouvé suffisamment d'informations sur la façon de le faire.
OriginalL'auteur nex | 2010-05-16
Vous devez vous connecter pour publier un commentaire.
Une option est de passer de
startService()
àbindService()
et utiliser le motif de liaison. Ensuite, vous avez besoin d'avoir Un appel d'une méthode sur S à un certain point pour enregistrer un écouteur ou de la méthode de rappel. Puis, S auront quelque chose qu'il peut faire appel à Un lorsque certaines info arrive. Vous pouvez voir un exemple de projet pour que ici.Alternativement, vous pouvez laisser
startService()
en place et l'utilisation d'une émissionIntent
laisser S dire Un sujet de quelques infos qui arrivent. Vous pouvez voir un exemple de projet démontrant une telle diffusionIntent
ici.Juste en œuvre de votre deuxième suggestion et il fonctionne comme un charme. merci encore!
OriginalL'auteur CommonsWare