85 votes

Android - Le meilleur moyen et le plus sûr d'arrêter le fil

Je veux savoir quelle est la meilleure façon d'arrêter un fil dans Android. Je sais que je peux utiliser AsyncTask place et qu'il existe une méthode cancel() Je dois utiliser Thread s dans ma situation. Voici comment j'utilise Thread :

 Runnable runnable = new Runnable() {
        @Override
        public void run() {
            //doing some work
        }
    };
new Thread(runnable).start();

Alors, est-ce que quelqu'un a une idée de la meilleure façon d'arrêter un fil ?

93voto

Chris Points 10237

Vous devez faire en sorte que votre thread prenne en charge les interruptions. Fondamentalement, vous pouvez appeler yourThread.interrupt() pour arrêter le thread et, dans votre méthode run(), vous devrez vérifier périodiquement l'état de Thread.interrupted()

Il y a un bon tutoriel ici .

2voto

Prasham Points 2424

Actuellement et malheureusement nous ne pouvons rien faire pour arrêter le fil....

En ajoutant quelque chose à la réponse de Matt, nous pouvons appeler interrupt() mais cela n'arrête pas le thread... Dit simplement au système d'arrêter le thread lorsque le système veut tuer certains threads. Le repos est fait par le système, et nous pouvons le vérifier en appelant interrupted() .

[ps : Si vous optez vraiment pour interrupt() je vous demanderais de faire quelques expériences avec un court sommeil après avoir appelé interrupt() ]

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X