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 :

Problème avec les HTC one S


Sujet :

Android

  1. #21
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    Comme quoi... un logcat entier... ca aide


    Comme l'a déjà dit Hizin, tout le problème est dans le "while (!go)"...

    Bon.. imaginons la situation suivante:
    1) "Pierre" répond très régulièrement au téléphone. Il n'a pas le droit de laisser sonner longtemps ou de ne pas répondre (sinon il va en prison ^^), ni même de laisser la ligne occupée (sinon personne ne peut plus l'appeler).
    2) "Pierre" a besoin de pain... et il n'y en a pas... Il ne peut pas non plus aller lui-même à la boulangerie (sinon prison !)
    3) Il demande alors à "Jean" d'aller acheter du pain à sa place.
    4) Pendant ce temps, il peut continuer de répondre aux appels.
    5) Quand "Jean" revient, il doit dire à "Pierre", tiens c'est bon j'ai le pain... Mais il ne peut pas le faire directement ("Pierre" est peut-être au téléphone)...Coup de chance, "Jean" a directement accès à la boite vocale de "Pierre", et va donc lui laisser un message "va manger le pain". Message que "Pierre" aura dès qu'il sera libre (peut être immédiatement ?).
    6) Pierre mange le pain.

    Repassons côté android:
    1) "Pierre" c'est le thread UI... les appels téléphoniques: les évènements UI (back, click, ...), la prison, c'est l'ANR (Application Not Responding) ou le crash.
    2) Le pain, c'est le GPS...
    3) "Jean" c'est le thread à part.
    4) c'est ici que tu as collé un "while (!go) ;"... si c'était pour attendre Jean sans rien faire d'autre, il était plus rapide d'aller soi-même à la boulangerie ! non ? En plus, pendant ce temps là, il répond pas au téléphone => Prison !
    Non simplement on quitte la fonction onCreate() et continue de répondre aux events.
    5) La boite vocale c'est le système de Handler....
    6) Le code qui utilise ce qui est récupéré par le thread.

    Il y a au moins 3 manières de réaliser le (5):
    En utilisant justement un Handler: c'est à mon gout peu pratique, compliqué..
    En utilisant "runOnUIThread" de Pierre: c'est le moyen le plus simple de laisser du code à executer par l'UI-thread.
    Sinon, en remplaçant tout le "thread" par un AsyncTask (qui va gérer les threads justement, les cancels, les communications asynchrones).

    J'espère avoir été clair

    Reste à espérer que manger le pain n'est pas trop long ^^

  2. #22
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 70
    Par défaut
    Merci. Je regarde aujourd'hui ou demain et je vous tiens au courant de l'avancé ;-)

  3. #23
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 70
    Par défaut
    J’ai enfin réussi à faire fonctionner mon application sur le htc one s (Et bonne nouvelle ca marche aussi sur les autres téléphones).
    La solution, est que j’ai du abuser des « new thread ». Je faisais appel à mon activité dans une activité « loading » via un new thread. Donc j’ai supprimé dans l’activité présente sur ce topic le « new thread » ainsi que la boucle dans le vide « while (!go) ».

    Peut être n’est ce pas la meilleur solution mais en tout cas ça marche.
    Voila.

    Encore merci à ceux qui m’ont apportés leur lumière

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

Discussions similaires

  1. Problème camera avec les HTC
    Par AÐÐ LINE dans le forum Android
    Réponses: 0
    Dernier message: 18/01/2011, 08h51
  2. [Postgresql]Problème avec les fonctions ...
    Par fet dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/10/2003, 09h04
  3. Problème avec les apostrophes
    Par misterbillyboy dans le forum Requêtes
    Réponses: 2
    Dernier message: 15/07/2003, 16h39
  4. Problème avec les fichiers .JPG
    Par cprogil dans le forum Langage
    Réponses: 5
    Dernier message: 10/06/2003, 15h44
  5. []Problème avec les formulaires Outlook
    Par Invité dans le forum Outlook
    Réponses: 6
    Dernier message: 05/12/2002, 09h59

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