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)։