Class PausedExecutorService
java.lang.Object
java.util.concurrent.AbstractExecutorService
org.robolectric.android.util.concurrent.PausedExecutorService
- All Implemented Interfaces:
AutoCloseable
,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 TypeMethodDescriptionboolean
awaitTermination
(long l, TimeUnit timeUnit) void
boolean
boolean
boolean
protected <T> RunnableFuture
<T> newTaskFor
(Runnable runnable, T value) protected <T> RunnableFuture
<T> newTaskFor
(Callable<T> callable) int
runAll()
Execute all posted tasks and block until they are complete.boolean
runNext()
Executes the next queued task.void
shutdown()
Methods inherited from class java.util.concurrent.AbstractExecutorService
invokeAll, invokeAll, invokeAny, invokeAny, submit, submit, submit
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface java.util.concurrent.ExecutorService
close
-
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:
newTaskFor
in classAbstractExecutorService
-
newTaskFor
- Overrides:
newTaskFor
in classAbstractExecutorService
-