Middle
Какво е Looper в Android?
sobes.tech AI
Отговор от AI
Looper е клас в Android, който се използва за работа с опашката за съобщения (MessageQueue) в нишки. Той свързва нишката с опашката за съобщения, позволявайки й да получава и обработва съобщения от нея.
Принцип на работа:
- Създаване на Looper: В нишката, която трябва да има опашка за съобщения, се извиква
Looper.prepare(). - Започване на цикъла: Извиква се
Looper.loop(). Този извикване блокира нишката, докатоLooperне бъде спрян. Вътре в цикъла,Looperнепрекъснато извлича съобщения отMessageQueueи ги изпраща към целевияHandler. - Спиране на Looper: За да приключи работата, се извиква
Looper.quit()илиLooper.quitSafely().
Handler се използва за изпращане на съобщения към MessageQueue на Looper и за тяхната обработка в свързаната с него нишка. Пример за използване:
// В нишката, където трябва да бъде Looper
new Thread(() -> {
Looper.prepare(); // 1. Създава се Looper и MessageQueue за тази нишка.
Handler handler = new Handler(Looper.myLooper()) { // 2. Създава се Handler, свързан с Looper на тази нишка.
@Override
public void handleMessage(Message msg) {
// Обработка на съобщението в тази нишка
}
};
Looper.loop(); // 3. Стартиране на цикъла Looper за обработка на съобщения.
}).start();
// В друга нишка, изпращане на съобщение
handler.sendMessage(/* вашето съобщение */);
Looper е необходим, за да могат нишките да обработват асинхронни задачи и да взаимодействат помежду си, особено при работа с UI нишката (която по подразбиране има Looper).