Sobes.tech
Middle

Ի՞նչ է Looper-ը Android-ում։

sobes.tech AI

Պատասխան AI-ից

Looper Android-ում դաս է, որը օգտագործվում է հաղորդագրությունների հերթականությամբ (MessageQueue) աշխատելու համար։ Այն կապում է մի թելին հաղորդագրությունների հերթի հետ, թույլ տալով նրան ստանալ և մշակել այդ հերթից հաղորդագրություններ։

Աշխատանքի սկզբունքը՝

  1. Looper-ի ստեղծում: Թելում, որը պետք է ունենա հաղորդագրությունների հերթ, կանչվում է Looper.prepare():
  2. Ցիկլի մեկնարկ: Կոչվում է Looper.loop(): Այս կանչը բլոկավորում է թելին մինչև որ Looper-ը չդադարեցվի։ Ցիկլի ընթացքում, Looper անընդհատ դուրս է բերում հաղորդագրություններ MessageQueue-ից և ուղարկում դրանք նպատակային Handler-ին:
  3. 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