Оптимальный метод отсрочки onEvent?

В моем маленьком приложении я получаю серию поставленных в очередь onEventXXX() из системы (не контролируемой мной).

Время для этих onEventXXX() не гарантируется. Единственное, что гарантируется, это то, что они будут получены в том порядке, в котором они были помещены в очередь.

Внутри onEventXXX() я должен запустить операцию (O), которая не может быть запущена, пока выполняется другой процесс (P).

Но я не могу просто так отказаться от этого «запуска операции (O)». Я должен дождаться завершения этого процесса (P), затем запустить его.

IOW, я должен поставить в очередь или, по крайней мере, отложить «запуск операции» до тех пор, пока этот процесс (P) не будет завершен.

Моей непосредственной идеей для реализации этого было то, что вместо запуска операции (O) я бы:

  1. Запустил одноразовый таймер, который периодически проверял бы процесс (P)
  2. Когда таймер истекает, если процесс (P) не завершен, снова запустите время (само себя).
  3. По истечении таймера, если процесс (P) завершен, срабатывает операция (O).

Но, зная о богатстве Android, я подозреваю, что есть лучший способ сделать это, уже встроенный в систему/API.

Если есть лучший способ реализовать описанное выше, то каким он будет?

6
задан Bill The Ape 30 March 2012 в 15:22
поделиться