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 дорад).