У меня следующий сценарий:
1) У меня есть список устройств для управления.
2) Эти устройства получают сообщения для выполнения действий. Я называю эти действия: «задачи».
3) Каждое устройство может запрашивать статус текущей задачи.
4) В моем приложении пользователи могут управлять несколькими устройствами, чтобы они могли выберите одно из всех устройств.
5) Затем мое приложение берет 1 устройство из списка выбранных устройств и отправляет ему сообщение. Это сообщение отправляется с использованием сокета tcp, поэтому необходим новый поток, чтобы не блокировать поток пользовательского интерфейса.
6) Устройство получает сообщение и выполняет программу.
7) Затем мой Приложение ожидает, что устройство завершит задачу. Чтобы узнать это, мое приложение отправляет каждые X секунд сообщение с вопросом о состоянии текущей задачи (каждое сообщение в новой теме).
8) Когда устройство ответит, что задача выполнена, мое приложение должно получить следующее устройство.
9) Мое приложение также отправит сообщение в поток пользовательского интерфейса, чтобы сообщить текущее состояние устройства ( используя обработчик).
Я читал о HandlerThread, Looper, Worker, но не могу найти правильную комбинацию для этого.
Пожалуйста, дайте мне несколько идей, чтобы очистить мой ум.