Android:如何使用IdlingResource等待后台任务(Espresso)

时间:2015-05-30 21:14:23

标签: android executorservice android-espresso

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

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

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

executor = Executors.newFixedThreadPool(MAX_THREADS);

为了检查它是否空闲,我使用它:

boolean isItIdle = executor.isTerminated() || executor.isShutdown();

显然,这个解决方案并不起作用。 任何帮助将不胜感激,谢谢你。

1 个答案:

答案 0 :(得分:0)

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

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

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

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

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