IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Synchronisation application Android


Sujet :

Android

  1. #41
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    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.

  2. #42
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2008
    Messages : 97
    Points : 52
    Points
    52
    Par défaut
    Citation Envoyé par Feanorin Voir le message
    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 ?

    j'ai fait le test en appelant ma fonction WS dans mon activité est ça fonctionne, de plus au début j'ai utulisé une varaible static pour accéder au service depuis l'Activity. mais, la méthode startService(Intent) n'offre pas d'accès direct aux méthodes du services. Pour se faire, j'ai utilisé binding est là ça ne fonctionne plus :-(

    Passe plutôt par un handler qui appellera une fonction de ton activity.

  3. #43
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    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

    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 as le log "je suis dans le datachanged" qui s'affiche essaye de passer par un handler plutôt .

    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.

  4. #44
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2008
    Messages : 97
    Points : 52
    Points
    52
    Par défaut
    Citation Envoyé par Feanorin Voir le message
    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

    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 as le log "je suis dans le datachanged" qui s'affiche essaye de passer par un handler plutôt .

    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 ^^.
    Je vous remercie,

    le message dans le dataChanged() ça ne s'affiche pas :-( pourtant j'ai crée une méthode qui vérifier le contenu de listenners et mon listenner est rempli.

    Je me suis basé sur le même tuto que vous avez envoyé :-)

  5. #45
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    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.

  6. #46
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2008
    Messages : 97
    Points : 52
    Points
    52
    Par défaut
    Citation Envoyé par Feanorin Voir le message
    T'appelles bien la fonction datachanged() dans ton service ?
    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); 
    			} 
    		} 
     
    	}

  7. #47
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    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.

  8. #48
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2008
    Messages : 97
    Points : 52
    Points
    52
    Par défaut
    Citation Envoyé par Feanorin Voir le message
    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 .
    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

    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); 
        }
    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
     
    IBackgroundService service1 = ((BackgroundServiceBinder)service).getService();
    je ne sais pas si il est ici le problème dans l'ajout de listenner

  9. #49
    Membre actif
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2005
    Messages : 103
    Points : 203
    Points
    203
    Par défaut
    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.
    Fichiers attachés Fichiers attachés

  10. #50
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2008
    Messages : 97
    Points : 52
    Points
    52
    Par défaut
    Citation Envoyé par Aerinder Voir le message
    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

  11. #51
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2008
    Messages : 97
    Points : 52
    Points
    52
    Par défaut
    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

  12. #52
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    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.

  13. #53
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2008
    Messages : 97
    Points : 52
    Points
    52
    Par défaut
    Citation Envoyé par Feanorin Voir le message
    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 ?
    Bonjour,

    bien sure . est ce que c'est normal que l'application fonctionne sans que le service ne soit afficher dans le running service de l'android

  14. #54
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2008
    Messages : 97
    Points : 52
    Points
    52
    Par défaut Merci à vous tous
    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 ().

+ Répondre à la discussion
Cette discussion est résolue.
Page 3 sur 3 PremièrePremière 123

Discussions similaires

  1. Intégration de Google Maps dans votre application Android
    Par michel.di dans le forum API standards et tierces
    Réponses: 22
    Dernier message: 07/10/2011, 20h02
  2. Réponses: 0
    Dernier message: 12/08/2009, 11h06
  3. Réponses: 0
    Dernier message: 12/08/2009, 11h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo