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 sur un ProgressDialog dans un run()


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    android
    Inscrit en
    Mai 2013
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : android
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2013
    Messages : 29
    Par défaut problème sur un ProgressDialog dans un run()
    bonjour,

    comme dit dans le titre j'ai un souci qui me fait friser.
    Dans ma vue principale, j'appelle une class pour envoyer un mail et suivant son retour request je dois avoir un message différent dans le progressDialog.
    Mais j'ai une erreur de type

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    W/System.err: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
            at android.os.Handler.<init>(Handler.java:200)
            at android.os.Handler.<init>(Handler.java:114)
            at android.view.ViewRootImpl$ViewRootHandler.<init>(ViewRootImpl.java:3126)
            at android.view.ViewRootImpl.<init>(ViewRootImpl.java:3411)
    W/System.err:     at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:271)
            at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:85)
            at android.app.Dialog.show(Dialog.java:298)
            at com.example.param_suite$MaTask.run(param_suite.java:708)
            at java.util.Timer$TimerImpl.run(Timer.java:284)
    et mon code où se trouve mon progressDialog
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    /** envoie mail */
        public class MaTask extends TimerTask {
     
            private Send_Mail send;
            private mailTest test;
            private ProgressDialog dialog = new ProgressDialog(getActivity());
     
            @Override
            public void run() {
                try{
                    dialog.setTitle("Patientez...");
                    dialog.setMessage("Envoie en cours...");
                    dialog.setCancelable(false);
                    dialog.setIndeterminate(false);
                    dialog.show();
                }catch(Exception e){
                    e.printStackTrace();
                }
                send = new Send_Mail();
                try {
     
                    if(send.Send_Mail() == 200){
                        tm = new mess_manager(getActivity());
                        tm.open();
                        tm.deleteAll();
                        tm.close();
                        dialog.setMessage("Mail réussite");
     
                    }else if(send.Send_Mail() == 400){
                        System.out.println("Chaine vide");
                        dialog.setMessage("Chaine vide");
     
     
                    }else if(send.Send_Mail() == 0){
                        System.out.println("Aucun fichier à envoyer");
                        dialog.setMessage("Aucun fichier à envoyer");
     
                    }else{
                        dialog.dmiss();
                    }
                } catch (MailjetException e) {
                    e.printStackTrace();
                } catch (MailjetSocketTimeoutException e) {
                    e.printStackTrace();
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
        }
    /**  */
    merci de votre aide.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 476
    Par défaut
    Le problème est que tu essaies de modifier le texte de ta Dialog qui est déjà créé et affichée. Déjà tu devrais plutôt le faire dans une méthode onPostExecute() puisque c'est l'envoi du mail qui est asynchrone.
    Peut-être que la solution suivante peut marcher

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    TextView tv_message = (TextView) dialog.findViewById(android.R.id.message);
    tv_message.setText("Mail réussite");

Discussions similaires

  1. Réponses: 40
    Dernier message: 02/11/2011, 17h41
  2. Réponses: 4
    Dernier message: 17/07/2011, 22h31
  3. Réponses: 1
    Dernier message: 25/06/2010, 17h42
  4. Réponses: 4
    Dernier message: 05/03/2008, 09h49
  5. Problème sur un pointeur dans une structure
    Par steph_1 dans le forum Langage
    Réponses: 5
    Dernier message: 05/09/2007, 18h59

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