私の小さなアプリでは、システムから一連のキューに入れられたonEventXXX()を受け取ります(私は制御していません)。
これらのonEventXXX()のタイミングは保証されていません。保証される唯一のことは、それらがキューに入れられた順序で受け取られることです。
onEventXXX()内で、別のプロセス(P)が進行している間は開始できない操作(O)を実行する必要があります。
しかし、私はこの「操作の実行(O)」を単に破棄することはできません。そのプロセス(P)が完了するまで待ってから、それを起動する必要があります。
IOW、そのプロセス(P)が完了するまで、「操作の実行」をキューに入れるか、少なくとも延期する必要があります。
これを実装するための私の当面のアイデアは、操作(O)を実行する代わりに、次のようにすることでした。
- プロセス(P)を定期的にチェックするワンショットタイマーを開始します
- タイマーが経過したときに、プロセス(P)が完了していない場合は、時間(それ自体)を再開します。
- タイマーが経過し、プロセス(P)が完了すると、操作(O)が実行されます。
しかし、Androidの豊富さを知っているので、これを行うためのより良い方法があり、すでにシステム/APIに組み込まれているのではないかと思います。
上記を実装するためのより良い方法がある場合、それは何でしょうか?