我想就上周无法实现的事情寻求帮助。当我发现一个严重的问题时,我正在实现一些 Espresso 测试。

有时我的测试会成功,但并非总是如此。问题是我的应用程序有几个异步任务,在检查测试条件之前我必须等待这些任务。通常,Espresso 只等待主线程任务。

我正在使用 Executors 生成新线程,如下所示:

executor = Executors.newFixedThreadPool(MAX_THREADS);

并检查它是否空闲,我正在使用它:
boolean isItIdle = executor.isTerminated() || executor.isShutdown();

显然,这个解决方案不起作用。
任何帮助将不胜感激,在此先感谢您。

最佳答案

我忘了用我实现的解决方案更新这篇文章。 :(

我的解决方案是每次我需要知道 Executor 何时进入空闲状态时调用 executor shutdown。所以,我以这种方式改变了我的检查方法:

executor.shutdown();
boolean isItIdle = executor.isTerminated();

调用 executor.shutdown() 使 executor.isTerminated() 方法变得有用。但是需要注意的是,当我们需要生成新线程时,我们必须考虑关闭状态(executor.isShutdown())。

我希望这可以帮助某人! ;)

关于Android:如何使用 IdlingResource 等待后台任务(Espresso),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30551447/

10-12 02:52