Как выполнить список действий, если каждое действие необходимо запустить в новом потоке и ожидать завершения предыдущего действия (в Android) - PullRequest
0 голосов
/ 14 января 2020

У меня следующий сценарий:

1) У меня есть список устройств для управления.

2) Эти устройства получают сообщения для выполнения действий. Я называю эти действия: «задачи».

3) Каждое устройство может запрашивать статус текущей задачи.

4) В моем приложении пользователи могут управлять несколькими устройствами, чтобы они могли выберите одно из всех устройств.

5) Затем мое приложение берет 1 устройство из списка выбранных устройств и отправляет ему сообщение. Это сообщение отправляется с использованием сокета tcp, поэтому необходим новый поток, чтобы не блокировать поток пользовательского интерфейса.

6) Устройство получает сообщение и выполняет программу.

7) Затем мой Приложение ожидает, что устройство завершит задачу. Чтобы узнать это, мое приложение отправляет каждые X секунд сообщение с вопросом о состоянии текущей задачи (каждое сообщение в новой теме).

8) Когда устройство ответит, что задача выполнена, мое приложение должно получить следующее устройство.

9) Мое приложение также отправит сообщение в поток пользовательского интерфейса, чтобы сообщить текущее состояние устройства ( используя обработчик).

Я читал о HandlerThread, Looper, Worker, но не могу найти правильную комбинацию для этого.

Пожалуйста, дайте мне несколько идей, чтобы очистить мой ум.

...