Middle
Qu'est-ce que Looper dans Android?
sobes.tech IA
Réponse de l'IA
Looper est une classe dans Android utilisée pour travailler avec la file de messages (MessageQueue) dans les threads. Elle relie un thread à la file de messages, lui permettant de recevoir et de traiter les messages de cette file.
Principe de fonctionnement :
- Création de Looper : Dans le thread qui doit avoir une file de messages, on appelle
Looper.prepare(). - Démarrage de la boucle : On appelle
Looper.loop(). Cet appel bloque le thread jusqu'à ce que leLoopersoit arrêté. À l'intérieur de la boucle, leLooperextrait en continu les messages deMessageQueueet les envoie auHandlercible. - Arrêt du Looper : Pour terminer le travail, on appelle
Looper.quit()ouLooper.quitSafely().
Handler est utilisé pour envoyer des messages à la MessageQueue du Looper et les traiter dans le thread associé à ce Looper. Exemple d'utilisation :
// Dans le thread où le Looper doit être
new Thread(() -> {
Looper.prepare(); // 1. Création du Looper et de la MessageQueue pour ce thread.
Handler handler = new Handler(Looper.myLooper()) { // 2. Création d'un Handler lié au Looper de ce thread.
@Override
public void handleMessage(Message msg) {
// Traitement du message dans ce thread
}
};
Looper.loop(); // 3. Démarrage de la boucle du Looper pour traiter les messages.
}).start();
// Dans un autre thread, envoi d'un message
handler.sendMessage(/* votre message */);
Looper est nécessaire pour que les threads puissent traiter des tâches asynchrones et interagir entre eux, notamment lors du travail avec le thread de l'interface utilisateur (qui a par défaut un Looper).