Sobes.tech
Назад к вопросам
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 обеспечивает цикл обработки этих сообщений.