В моем маленьком приложении я получаю серию поставленных в очередь onEventXXX() из системы (не контролируемой мной).
Время для этих onEventXXX() не гарантируется. Единственное, что гарантируется, это то, что они будут получены в том порядке, в котором они были помещены в очередь.
Внутри onEventXXX() я должен запустить операцию (O), которая не может быть запущена, пока выполняется другой процесс (P).
Но я не могу просто так отказаться от этого «запуска операции (O)». Я должен дождаться завершения этого процесса (P), затем запустить его.
IOW, я должен поставить в очередь или, по крайней мере, отложить «запуск операции» до тех пор, пока этот процесс (P) не будет завершен.
Моей непосредственной идеей для реализации этого было то, что вместо запуска операции (O) я бы:
Но, зная о богатстве Android, я подозреваю, что есть лучший способ сделать это, уже встроенный в систему/API.
Если есть лучший способ реализовать описанное выше, то каким он будет?