Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Android] Intent sur un service deja en cours

    16 juin 2012 à 1:53:40

    Bonjour , en gros mon appli crée un notification toutes les heures. Quand on va dans la notif via la barre des taches je veux qu'on revienne sur mon service de base. Le probleme est que tout est recrée.

    En gros j'aimerai reprendre le service de base, (en onResume() ).

    Voila, ca fait quelque heures que je galère si quelqu'un aurait une idée ?

    Si je ne suis pas clair (il est tard) n'hésitez pas.
    • Partager sur Facebook
    • Partager sur Twitter
      16 juin 2012 à 13:04:06

      Bonjour,

      Quand une Activity est masquée, elle est recrée lors de son affichage. Le principe est de se dé-binder su Service lorsqu'on masque l'Activity.

      Il faut donc que tu te re-bind sur le Service lors du onResume().
      • Partager sur Facebook
      • Partager sur Twitter
        20 juin 2012 à 14:52:23

        J'ai toujours le meme probleme que je n'ai pas résolu.

        En fait mon probleme est le suivant :

        J'ai un service qui génère une notification toutes les heures.

        Et lorsqu'on clique sur la notif sur le portable, on revient sur mon appli.
        Et cela recrée l'appli donc recrée un autre Service.

        Fumble, je suis débutant, je n'ai absolument pas compris de quoi tu parles :(
        • Partager sur Facebook
        • Partager sur Twitter
          20 juin 2012 à 17:01:32

          OK, je vais essayer de faire simple. :)

          Pour commencer, un peu de lecture sur le cycle de vie d'une Activity: http://developer.android.com/reference [...] Activity.html
          Et insiste bien sur cette image: :-°
          Image utilisateur

          Ensuite, un Service est fait pour tourner en tâche de fond. C'est à dire qu'il fonctionne même quand ton appli n'est pas visible. C'est comme ça que tu reçoit les notifs de Gmail et consorts.

          En gros, quand tu crées un service dans ton application, pour l'utiliser dans une Activity, il faut t'attacher (bind) dessus. Par exemple, tu pourrais créer un service qui récupère le taux de charge de la batterie pour l'afficher dans un champ texte de ton Activity.
          Mais lorsque ton Activity est masquée, ce n'est plus la peine d'utiliser ton Service car cela consommera de la batterie pour rien: rafraichir ton affichage du taux de charge de la batterie alors que l'utilisateur est en pleine partie d'Angry Birds, c'est un peu inutile. Ou imaginons que ton Service soit un lecteur de musique, qui fonctionne en arrière plan donc (on écoute le dernier U2 en consultant ses mails), si l'utilisateur affiche ton appli et appuie sur Stop, il faut stopper la lecture et le Service.

          Lorsque ton Activity devient masquée, retour bureau ou lancement d'une autre Activity (qu'elle provienne d'une autre appli ou toujours de la tienne), il faut se détacher du Service (unbind).

          C'est pour cela que tu dois gérer le bind/unbind à ton service lorsque ton Activity est créée/masquée/stoppée. Tant que tu ne stoppes pas ton Service, c'est inutile de le recréer à chaque fois.

          Encore de la lecture, mais sur les Service cette fois: http://developer.android.com/reference [...] /Service.html
          • Partager sur Facebook
          • Partager sur Twitter

          [Android] Intent sur un service deja en cours

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown