Назад к вопросам
Junior — Middle
75
Каким образом реализовать обмен сообщениями между потоками с использованием Handler и Looper?
Ответ от нейросети
sobes.tech AI
В Android для обмена сообщениями между потоками часто используют комбинацию Handler и Looper.
- Looper создаёт цикл обработки сообщений в потоке.
- Handler позволяет отправлять и обрабатывать сообщения в этом цикле.
Пример:
// В рабочем потоке создаём Looper и Handler
HandlerThread handlerThread = new HandlerThread("MyHandlerThread");
handlerThread.start();
Handler backgroundHandler = new Handler(handlerThread.getLooper()) {
@Override
public void handleMessage(Message msg) {
// Обработка сообщения в фоновом потоке
Log.d("Handler", "Message received: " + msg.what);
}
};
// Отправка сообщения из главного потока
backgroundHandler.sendEmptyMessage(1);
Таким образом, главный поток может отправлять сообщения в фоновый поток через Handler, а Looper обеспечивает цикл обработки этих сообщений.