Il y a quand même quelque chose qui me dérange avec ce bout de code .
Comment sais tu que l'activity WS_SAP_activity est lancé et active ?
Passe plutôt par un handler qui appellera une fonction de ton activity.
Il y a quand même quelque chose qui me dérange avec ce bout de code .
Comment sais tu que l'activity WS_SAP_activity est lancé et active ?
Passe plutôt par un handler qui appellera une fonction de ton activity.
Responsable Android de Developpez.com (Twitter et Facebook)
Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.
Alors déjà pas de static pour accéder au méthode du service ... il faut le lancer puis faire un bind dessus ...
Maintenant essaye cela
Si tu as le log "je suis dans le datachanged" qui s'affiche essaye de passer par un handler plutôt .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 final IBackgroundServiceListener listener = new IBackgroundServiceListener() { public void dataChanged(final String o) { Log.d(this.getClass().getName(), "je suis dans le datachanged"); WS_SAP_activity.this.runOnUiThread(new Runnable() { public void run() { Log.d(this.getClass().getName(), "je suis dans le run"); tf.setText(o.toString()); } }); } };
Si tu n'as pas ce log qui s'affiche regarde le problème vient du listener .
Tu as un bon tutoriel la dessus (ainsi que sur les listener )
http://blog.developpez.com/android23...on-de-service/.
Si tu as toujours un souci j’essaierais de relire la discussion depuis le début ^^.
Responsable Android de Developpez.com (Twitter et Facebook)
Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.
T'appelles bien la fonction datachanged() dans ton service ?
Responsable Android de Developpez.com (Twitter et Facebook)
Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.
dans mon service j'appelle la méthode fireDataChanged() qui appel dataChanged
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 private void fireDataChanged(String data){ if(listeners != null){ for(IBackgroundServiceListener listener: listeners){ listener.dataChanged(data); } } }
As tu regardé su tu rentrais bien dans cette boucle .
Essaye de déboguer ton application pour voir si le listener est pris en compte ( appel ) et ensuite si il attrape bien cet événement .
Responsable Android de Developpez.com (Twitter et Facebook)
Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.
je suis entré dans la boucle j'ai remarqué que mon listenner est vide alors j'ai vérifier avec le tuto j'ai remarqué quelque chose dans le tuto sur le service en faite il disent dans la deuxième partie sur l'utilisation de Binder d'ajouter ceci
mais quand j'ai l'intégré dans mon code une erreur s'affiche en me disant la variable local service est dupliqué alors j'ai la modifier en service1 comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 ServiceConnection connection = new ServiceConnection() { public void onServiceConnected(ComponentName name, IBinder service) { Log.i("BackgroundService", "Connected!"); IBackgroundService service = ((BackgroundServiceBinder)service).getService(); service.addListener(listener); }
je ne sais pas si il est ici le problème dans l'ajout de listenner
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 IBackgroundService service1 = ((BackgroundServiceBinder)service).getService();
Bonjour,
Comme j'ai un peu de mal à voir ce qui va pas sachant que chez moi ça fonctionne, j'ai fais un zip tout simple d'un projet avec une activité (main) qui lance un service, dans ce service, un timer exécute une tâche toutes les 10 secondes, qui attends 1 seconde puis informe les abonnés au service de l'exécution de la tache.
Bonjour,
merci pour votre réponse en faite le service fonctionne et il m'affiche le e résultat dans le toast mais mon problème c'est que j'ai voulu afficher le résultat dans le textfield qui se trouve dans la ma classe activity
j'ai une question est ce que c'est normal de ne pas voir le service dans les running service pourtant le service fonctionne correctement et j'ai bien suivi le tuto
maintenant j'ai un doute est ce que le service fonctionne ou pas car je ne le voit pas dans running service en plus même le les message dans la méthode onServiceConnected() ne s'affiche pas dans le logcat pourtant le service s’exécute correctement
franchement les gars je comprend rien de tout
Bonjour,
Je reprends la discussion en cours de route , donc ma question sera peut être débile mais bon , as-tu déclaré ton service dans le manifest ?
Responsable Android de Developpez.com (Twitter et Facebook)
Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.
Bonjour,
c'est bon j'ai résolu le problème grâce à vous je vous remercie
le problème c'est que j'ai oublier de lier le service avec l'activity
dans la méthode onCreate ().
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager