tgoop.com/dev_easy_notes/18
Last Update:
#android #ui
{1/4} Что такое Looper, как работает и что делает?
🙌 Представьте себе бесконечный цикл, допустим for(;;){}
. Далее представим, что в этом цикле мы читаем из некоторой очереди Queue<Runnable> значения и выполняем их, получается что-то вроде:
Queue<Runnable> queue;
for(;;){
final Runnable runnable = queue.take();
runnable.run();
}
Это и есть вся суть Looper. Просто бесконечный цикл который получает из очереди сообщения и их выполняет.
Чтобы создать Looper нужно вызвать метод Looper.prepare(). После этого метод Looper.prepare() сохраняет созданный объект в статическое поле типа ThreadLocal.
Реализация инициализации лупера довольна простая, и при этом позволяет в любом месте программы и из любого треда получить лупер, связанный с текущим тредом. Статический метод Looper.myLooper() просто достает лупер из переменной ThreadLocal.
Далее мы запускаем Looper при помощи метода Looper.loop() он уходит в бесконечный цикл, который мы обсудили выше. В следующих постах обсудим что за сообщения, и кто их посылает.
BY Dev Easy Notes
Share with your friend now:
tgoop.com/dev_easy_notes/18