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())
我希望这可以帮助别人! ;)
我想就上周无法实现的事情寻求帮助。当我发现一个严重的问题时,我正在实施一些 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())
我希望这可以帮助别人! ;)