@Implements(value=android.os.Looper.class, isInAndroidSdk=false) public final class ShadowPausedLooper extends ShadowLooper
The shadow Looper for LooperMode.Mode.PAUSED.
This shadow differs from the legacy ShadowLegacyLooper in the following ways:\ * - Has no connection to Scheduler. Its APIs are standalone - The main looper is always paused. Posted messages are not executed unless idle() is called. - Just like in real Android, each looper has its own thread, and posted tasks get executed in that thread. - - There is only a single SystemClock value that all loopers read from. Unlike legacy behavior where each Scheduler kept their own clock value.
This class should not be used directly; use ShadowLooper instead.
ShadowLooper.Picker| Constructor and Description |
|---|
ShadowPausedLooper() |
| Modifier and Type | Method and Description |
|---|---|
protected void |
__constructor__(boolean quitAllowed) |
Duration |
getLastScheduledTaskTime() |
Duration |
getNextScheduledTaskTime() |
Scheduler |
getScheduler()
Returns the
Scheduler that is being used to manage the enqueued tasks. |
boolean |
hasQuit() |
void |
idle()
Executes all posted tasks scheduled before or at the current time.
|
void |
idleConstantly(boolean shouldIdleConstantly) |
void |
idleFor(long time,
TimeUnit timeUnit)
Advances the system clock by the given time, then executes all posted tasks scheduled before or at the given time.
|
void |
idleIfPaused()
Helper method to selectively call idle() only if LooperMode is PAUSED.
|
boolean |
isIdle()
Returns true if the looper has any pending tasks scheduled to be executed before current time.
|
boolean |
isPaused() |
void |
pause()
Pause the looper.
|
boolean |
post(Runnable runnable,
long delayMillis)
Enqueue a task to be run later.
|
boolean |
postAtFrontOfQueue(Runnable runnable)
Enqueue a task to be run ahead of all other delayed tasks.
|
protected static void |
prepareMainLooper() |
protected void |
quit() |
protected void |
quitSafely() |
void |
quitUnchecked() |
void |
reset()
Causes all enqueued tasks to be discarded, and pause state to be reset
|
static void |
resetLoopers() |
void |
resetScheduler()
Only supported for
LooperMode.Mode.PAUSED. |
void |
runOneTask()
Causes only one of the next
Runnables that have been scheduled to run while advancing the clock to its start time. |
void |
runPaused(Runnable runnable)
Runs the current task with the looper paused.
|
void |
runToEndOfTasks()
|
void |
runToNextTask()
Causes the next
Runnable(s) that have been scheduled to run while advancing the clock to its start time. |
boolean |
setPaused(boolean shouldPause)
Control the paused state of the Looper.
|
void |
unPause()
Not supported for the main Looper in
LooperMode.Mode.PAUSED. |
assertLooperMode, getLooperForThread, getShadowMainLooper, idle, idle, idleFor, idleMainLooper, idleMainLooper, idleMainLooper, idleMainLooperConstantly, looperMode, pauseLooper, pauseMainLooper, resetThreadLoopers, runMainLooperOneTask, runMainLooperToNextTask, runUiThreadTasks, runUiThreadTasksIncludingDelayedTasks, shadowMainLooper, unPauseLooper, unPauseMainLooper@Implementation protected void __constructor__(boolean quitAllowed)
public void quitUnchecked()
quitUnchecked in class ShadowLooperpublic boolean hasQuit()
hasQuit in class ShadowLooperpublic void idle()
ShadowLooperExecutes all posted tasks scheduled before or at the current time.
idle in class ShadowLooperpublic void idleFor(long time,
TimeUnit timeUnit)
ShadowLooperAdvances the system clock by the given time, then executes all posted tasks scheduled before or at the given time.
idleFor in class ShadowLooperpublic boolean isIdle()
ShadowLooperReturns true if the looper has any pending tasks scheduled to be executed before current time.
isIdle in class ShadowLooperpublic void unPause()
ShadowLooperNot supported for the main Looper in LooperMode.Mode.PAUSED.
unPause in class ShadowLooperpublic void pause()
ShadowLooperPause the looper.
Has no practical effect for realistic looper, since it is always paused.
pause in class ShadowLooperpublic boolean isPaused()
isPaused in class ShadowLooperpublic boolean setPaused(boolean shouldPause)
ShadowLooperControl the paused state of the Looper.
Not supported for the main Looper in LooperMode.Mode.PAUSED.
setPaused in class ShadowLooperpublic void resetScheduler()
ShadowLooperOnly supported for LooperMode.Mode.PAUSED.
resetScheduler in class ShadowLooperpublic void reset()
ShadowLooperCauses all enqueued tasks to be discarded, and pause state to be reset
reset in class ShadowLooperpublic void idleIfPaused()
ShadowLooperHelper method to selectively call idle() only if LooperMode is PAUSED.
Intended for backwards compatibility, to avoid changing behavior for tests still using LEGACY LooperMode.
idleIfPaused in class ShadowLooperpublic void idleConstantly(boolean shouldIdleConstantly)
idleConstantly in class ShadowLooperpublic void runToEndOfTasks()
ShadowLooperCauses all of the Runnables that have been scheduled to run while advancing the clock to the start time of the last scheduled Runnable.
runToEndOfTasks in class ShadowLooperpublic void runToNextTask()
ShadowLooperCauses the next Runnable(s) that have been scheduled to run while advancing the clock to its start time. If more than one Runnable is scheduled to run at this time then they will all be run.
runToNextTask in class ShadowLooperpublic void runOneTask()
ShadowLooperCauses only one of the next Runnables that have been scheduled to run while advancing the clock to its start time. Only one Runnable will run even if more than one has been scheduled to run at the same time.
runOneTask in class ShadowLooperpublic boolean post(Runnable runnable, long delayMillis)
ShadowLooperEnqueue a task to be run later.
post in class ShadowLooperrunnable - the task to be rundelayMillis - how many milliseconds into the (virtual) future to run itHandler.postDelayed(Runnable,long)public boolean postAtFrontOfQueue(Runnable runnable)
ShadowLooperEnqueue a task to be run ahead of all other delayed tasks.
postAtFrontOfQueue in class ShadowLooperrunnable - the task to be runHandler.postAtFrontOfQueue(Runnable)public void runPaused(Runnable runnable)
ShadowLooperRuns the current task with the looper paused.
When LooperMode is PAUSED, this will execute all pending tasks scheduled before the current time.
runPaused in class ShadowLooperpublic Duration getNextScheduledTaskTime()
getNextScheduledTaskTime in class ShadowLooperpublic Duration getLastScheduledTaskTime()
getLastScheduledTaskTime in class ShadowLooper@Resetter public static void resetLoopers()
@Implementation protected static void prepareMainLooper()
@Implementation protected void quit()
@Implementation(minSdk=18) protected void quitSafely()
public Scheduler getScheduler()
ShadowLooperReturns the Scheduler that is being used to manage the enqueued tasks. This scheduler is managed by the Looper’s associated queue.
Only supported for LooperMode.Mode.PAUSED.
getScheduler in class ShadowLooperScheduler that is being used to manage the enqueued tasks.