Middle
Android-də Looper nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Looper, tək bir iş parçasında bir vəzifəni çoxsaylı dəfə yerinə yetirmək üçün nəzərdə tutulmuş obyektidir. O, hadisələr dövrü yaradır və mesajlar növbəsindən (MessageQueue) mesajları emal edir.
Əsas komponentlər:
- MessageQueue: Tapşırıq və ya mesajların növbəsi.
- Looper: MessageQueue-dan mesajları çıxaran və onları müvafiq Handler-ə göndərən obyekt.
- Handler: Müəyyən bir Thread və MessageQueue ilə əlaqəli obyekt. O, MessageQueue-ya mesaj göndərmək və onları emal etmək üçün istifadə olunur.
İş prinsipi:
- Looper-dən istifadə etmək istəyən thread
Looper.prepare()çağırır və Looper və MessageQueue yaradır. - Thread
Looper.loop()çağırır və mesajların emalı dövrünü başlatır. Bu funksiyaLooper.quit()çağırılana qədər thread-i bloklayır. - Handler bu Looper ilə əlaqəli MessageQueue-ya mesajlar yaradır və göndərir.
- Looper MessageQueue-dan mesajları ardıcıllıqla çıxarır və onları
handleMessage()metodunda emal etmək üçün Handler-ə geri göndərir.
Tətbiqlər:
- Android-də UI Thread (İstifadəçi İnterfeysi Thread) Looper-dən istifadə edir, bu, kliklər və toxunuşlar kimi hadisələri UI-ni bloklamadan emal etmək üçün.
- Arxa plan thread-lər Looper-dən istifadə edə bilər, bu, təkrarlanan tapşırıqları yerinə yetirmək və ya digər thread-lərdən göndərilən mesajları emal etmək üçün.
// Arxa plan thread-də Looper yaratmaq və başlatmaq nümunəsi
class WorkerThread extends Thread {
public Handler handler;
public void run() {
Looper.prepare(); // Bu thread üçün Looper və MessageQueue yaradırıq
handler = new Handler(Looper.myLooper()) { // Handler yaradırıq
@Override
public void handleMessage(Message msg) {
// Mesajı burada emal et
}
};
Looper.loop(); // Mesajların emalı dövrünü başlat
}
}