Class PausedExecutorService
java.lang.Object
java.util.concurrent.AbstractExecutorService
org.robolectric.android.util.concurrent.PausedExecutorService
- All Implemented Interfaces:
Executor,ExecutorService
Executor service that queues any posted tasks.
Users must explicitly call
runAll() to execute all pending tasks.
Intended to be a replacement for RoboExecutorService when using
LooperMode.Mode.PAUSED.
Unlike RoboExecutorService, will execute tasks on a background thread. This is useful
to test Android code that enforces it runs off the main thread.
NOTE: Beta API, subject to change.-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanawaitTermination(long l, TimeUnit timeUnit) voidbooleanbooleanbooleanprotected <T> RunnableFuture<T>newTaskFor(Runnable runnable, T value) protected <T> RunnableFuture<T>newTaskFor(Callable<T> callable) intrunAll()Execute all posted tasks and block until they are complete.booleanrunNext()Executes the next queued task.voidshutdown()
-
Constructor Details
-
PausedExecutorService
public PausedExecutorService()
-
-
Method Details
-
runAll
public int runAll()Execute all posted tasks and block until they are complete.- Returns:
- the number of tasks executed
-
runNext
public boolean runNext()Executes the next queued task. Will be ignored if called from the executor service thread to prevent deadlocks.- Returns:
- true if task was run, false if queue was empty
-
hasQueuedTasks
public boolean hasQueuedTasks()- Returns:
- true if there are queued pending tasks
-
shutdown
public void shutdown() -
shutdownNow
-
isShutdown
public boolean isShutdown() -
isTerminated
public boolean isTerminated() -
awaitTermination
- Throws:
InterruptedException
-
execute
-
newTaskFor
- Overrides:
newTaskForin classAbstractExecutorService
-
newTaskFor
- Overrides:
newTaskForin classAbstractExecutorService
-