Middle
Androidдеги Looper эмне?
sobes.tech AI
AIден жооп
Looper — бул объект, бир ишти бир нече жолу аткарууга арналган. Ал окуялар циклин түзөт, ал MessageQueue (хабарлар кезеги) аркылуу келген билдирүүлөрдү иштетет.
Негизги компоненттер:
- MessageQueue: Иштер же билдирүүлөр кезеги.
- Looper: Объект, ал MessageQueue дан билдирүүлөрдү чыгарып, тиешелүү Handlerге жиберет.
- Handler: Белгилүү бир Thread жана MessageQueue менен байланышкан объект. Ал MessageQueueга билдирүүлөрдү жиберүү жана иштетүү үчүн колдонулат.
Иштөө принциби:
- Looper колдонгуң келген Thread
Looper.prepare()деп чакырып, Looper жана MessageQueue түзөт. - Thread
Looper.loop()деп чакырып, билдирүүлөрдү иштетүү циклин баштайт. Бул функция Threadти блоктоп турат,Looper.quit()чакырылгандан кийин гана аяктайт. - Handler бул Looper менен байланышкан MessageQueueга билдирүүлөрдү түзүп, жиберет.
- Looper MessageQueueдан билдирүүлөрдү тартип менен чыгарып, кайра Handlerге жиберет, ал
handleMessage()методу аркылуу иштетилет.
Колдонмолор:
- Android'деги UI Thread (Колдонуучу интерфейси Thread) Looper'ди колдонуп, окуяларды, мисалы, кликтер жана тийүүлөрдү, UI'ни блоктобой иштетет.
- Аркакы Thread'лер Looper'ди колдонуп, кайталанган тапшырмаларды аткаруу же башка Thread'лерден келген билдирүүлөрдү иштетүү мүмкүнчүлүгүнө ээ.
// Аркакы Thread'де Looper түзүү жана ишке киргизүү мисалы
class WorkerThread extends Thread {
public Handler handler;
public void run() {
Looper.prepare(); // Бул Thread үчүн Looper жана MessageQueue түзөбүз
handler = new Handler(Looper.myLooper()) { // Handler түзөбүз
@Override
public void handleMessage(Message msg) {
// Мессежди иштетүү
}
};
Looper.loop(); // Мессеждер циклин баштайбыз
}
}