-1
votes

Nouveau thread ne pas exécuter le code correctement

J'ai une fonction appelée lorsqu'un bouton est enfoncé et il a un fil censé envoyer et effacer un texte TextView, mais cela ne se produit pas. Aussi pas de stacktrace.

    public void sendMessage(View view) {
        if (input_text.getText().length() > 0) {
            new Thread(new Runnable() {
                @Override
                public void run() {
                    TextMessage message = new TextMessage(input_text.getText().toString(), 0, MainHandler.getUserID(), MainHandler.getUsername());
                    MainHandler.sendObject(message);
                    input_text.setText("");
                }
            });
        }
    }


0 commentaires

4 Réponses :


3
votes

Vous ne démarrez pas votre fil:

        new Thread(new Runnable() {
            @Override
            public void run() {
                TextMessage message = new TextMessage(input_text.getText().toString(), 0, MainHandler.getUserID(), MainHandler.getUsername());
                MainHandler.sendObject(message);
                input_text.setText("");
            }
        }).start();


0 commentaires

1
votes

Vous devez appeler explicitement start () (pas exécution () ) sur le thread créé . .


0 commentaires

1
votes

Cette réponse fait référence à Java Swing!

Il est faux de modifier l'interface utilisateur avec le nouveau fil. L'interface utilisateur doit être modifiée par le fil de l'interface utilisateur! Veuillez utiliser Invoke plus tard pour mettre à jour votre UI! https://www.javamex.com/tadorials/threads/invokelater.shtmlled xxx

et bien sûr, vous devez démarrer le fil.


3 commentaires

Merci!, Mettra l'entrée_text à l'extérieur du fil à l'extérieur.


Notez que ce lien que vous avez fourni est à propos de Swing. Cette question concerne Android.


Vous avez raison =) désolé, je n'ai pas vu la balise.



0
votes

Vous devez appeler thread.start () . Sinon, l'objet de thread est assis là en attente de commencer.

https://docs.oracle.com /javase/8/docs/api/java/lang/Trhead.html


0 commentaires