我想就上周无法实施的事情寻求帮助。当我发现一个严重的问题时,我正在实施一些Espresso测试。
有时我的测试成功但并非总是如此。问题是我的应用程序有几个异步任务,我必须等待检查测试条件。通常,Espresso只等待主线程任务。
我正在使用Executors生成新线程,如下所示:
executor = Executors.newFixedThreadPool(MAX_THREADS);
为了检查它是否空闲,我使用它:
boolean isItIdle = executor.isTerminated() || executor.isShutdown();
显然,这个解决方案并不起作用。 任何帮助将不胜感激,谢谢你。
答案 0 :(得分:0)
我忘了用我实施的解决方案更新这篇文章。 :(
我的解决方案是每当我需要知道Executor何时进入空闲状态时调用执行器关闭。所以,我用这种方式改变了我的检查方法:
executor.shutdown();
boolean isItIdle = executor.isTerminated();
调用executor.shutdown()使得executor.isTerminated()方法成为可能。但是,应该注意的是,当我们需要生成新线程时,我们必须考虑关闭状态(executor.isShutdown())。
我希望这可以帮助别人! ;)