Sobes.tech
Middle

Android-ში რა არის Looper?

sobes.tech AI

პასუხი AI-სგან

Looper Android-ში კლასი არის, რომელიც გამოიყენება შეტყობინებების რიგთან (MessageQueue) მუშაობისთვის. იგი უკავშირდება ნაკადს (thread) შეტყობინებების რიგთან, რაც საშუალებას აძლევს მას მიიღოს და დაამუშავოს ამ რიგიდან შეტყობინებები.

მუშაობის პრინციპი:

  1. Looper-ის შექმნა: იმ ნაკადში, რომელსაც უნდა ჰქონდეს შეტყობინებების რიგი, იძახება Looper.prepare().
  2. ციკლის დაწყება: იძახება Looper.loop(). ეს გამოძახება ბლოკავს ნაკადს მანამ, სანამ Looper არ შეჩერდება. ციკლში, Looper უწყვეტად იღებს შეტყობინებებს MessageQueue-დან და აგზავნის მათ მიზნობრივ Handler-ს.
  3. Looper-ის შეჩერება: სამუშაოს დასრულებისთვის, იძახება Looper.quit() ან Looper.quitSafely().

Handler გამოიყენება შეტყობინებების გაგზავნისთვის MessageQueue-ში და მათი დამუშავებისთვის დაკავშირებულ ნაკადში. გამოყენების მაგალითი:

// იმ ნაკადში, სადაც უნდა იყოს `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).