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

Android: How to use IdlingResource to wait for background tasks (Espresso)

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

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

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

executor = Executors.newFixedThreadPool(MAX_THREADS);

为了检查它是否空闲,我正在使用这个:

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

显然,此解决方案不起作用。 任何帮助将不胜感激,提前致谢。

我忘记用我已经实施的解决方案更新此 post。 :(

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

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

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

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