Ответ
Looper привязывается к потоку через ThreadLocal, который хранит экземпляр Looper'а для текущего потока.
- Создание Looper'а:
Looper.prepare() // Создает Looper для текущего потока
Looper.loop() // Запускает обработку сообщений
-
Привязка к потоку:
prepare()сохраняет Looper вThreadLocal<Looper>.myLooper()возвращает Looper текущего потока.
- Пример HandlerThread:
val handlerThread = HandlerThread("MyThread")
handlerThread.start()
val handler = Handler(handlerThread.looper)
Looper остается привязанным к потоку до вызова quit() или quitSafely().