在我的小应用程序中,我从系统(不受我控制)收到一系列排队的 onEventXXX()。
不能保证那些 onEventXXX() 的时间。唯一可以保证的是,它们按照它们被放入队列的顺序被接收。
在 onEventXXX() 内部,我必须触发一个操作 (O),而该操作 (O) 在另一个进程 (P) 正在进行时无法启动。
但是我不能仅仅放弃这个“触发操作(O)”。我必须等到该过程(P)完成,然后触发它。
IOW,我必须排队或至少推迟“触发操作”,直到该过程(P)完成。
我实现这一点的直接想法是,我不会触发操作 (O),而是:
- 启动一个一次性计时器,定期检查进程 (P)
- 当计时器过去时,如果进程 (P) 未完成,则重新开始计时(本身)。
- 当计时器经过时,如果过程 (P) 完成,则触发操作 (O)。
但是知道 Android 的丰富性,我怀疑有更好的方法来做到这一点,已经内置到系统/API 中。
如果有更好的方法来实现上述内容,那会是什么?