在我的小应用程序中,我从系统(不受我控制)中收到一系列排队的onEventXXX()。
不能保证这些onEventXXX()的时间。唯一可以保证的是,将它们以顺序的顺序接收,并按顺序放入队列中。
在onEventXXX()内部,我必须在正在进行另一个进程(P)的情况下触发无法启动的操作(O)。
但是我不能仅仅丢弃这个“触发操作(O)”。我必须等到该过程(P)完成,然后将其解雇。
IOW,我必须排队或至少推迟“触发操作”,直到该过程(P)完成。
我实现此目标的直接想法是,而不是触发操作(O),我将:
但是,由于知道Android的功能,我怀疑已经有更好的方法做到这一点,它已经内置在系统/API中。
如果有更好的方法来实现上述目标,那会是什么?
最佳答案
CountDownLatch将是最好的解决方案。
我没有详细的示例,但我认为您可以轻松使用它。
过程如下
如果您这样编写代码,则可以轻松处理许多情况。
我在yyc单元测试中使用CountDownLatch。您可以在这里看到我的代码:http://kingori.egloos.com/4554640
尽管这与您的情况不同,但是您可以从我的代码中获取提示。另外,CountDownLatch的javadoc提供了很好的示例。
关于android - 推迟 Activity 的最佳方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9945900/