public class JobManager
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
static long |
MIN_DELAY_TO_USE_SCHEDULER_IN_MS
The min delay in MS which will trigger usage of JobScheduler.
|
static long |
NETWORK_CHECK_INTERVAL |
static long |
NOT_DELAYED_JOB_DELAY |
static long |
NOT_RUNNING_SESSION_ID |
static long |
NS_PER_MS |
Constructor and Description |
---|
JobManager(Configuration configuration)
Creates a JobManager with the given configuration
|
Modifier and Type | Method and Description |
---|---|
void |
addCallback(JobManagerCallback callback)
Adds a JobManagerCallback to observe this JobManager.
|
void |
addJob(Job job)
Adds the Job to the JobManager and waits until the add is handled.
|
void |
addJobInBackground(Job job)
Adds a Job to the JobManager.
|
void |
addJobInBackground(Job job,
AsyncAddCallback callback)
Adds a Job in a background thread and calls the provided callback once the Job is added
to the JobManager.
|
CancelResult |
cancelJobs(TagConstraint constraint,
java.lang.String... tags)
Cancels jobs that match the given criteria.
|
void |
cancelJobsInBackground(CancelResult.AsyncCancelCallback cancelCallback,
TagConstraint constraint,
java.lang.String... tags)
Cancels the Jobs that match the given criteria.
|
void |
clear()
Clears all waiting Jobs in the JobManager.
|
int |
count()
Returns the number of jobs in the JobManager.
|
int |
countReadyJobs()
Returns the number of jobs that are ready to be executed but waiting in the queue.
|
void |
destroy()
Destroys the JobManager.
|
int |
getActiveConsumerCount()
Returns the number of consumer threads that are currently running Jobs.
|
java.lang.Thread |
getJobManagerExecutionThread()
Returns the main thread of the JobManager.
|
JobStatus |
getJobStatus(java.lang.String id)
Returns the current status of a given job
|
Scheduler |
getScheduler()
The scheduler that was given to this JobManager when it was initialized.
|
boolean |
removeCallback(JobManagerCallback callback)
Removes the JobManagerCallback from the callbacks list.
|
void |
start()
Starts the JobManager if it is not already running.
|
void |
stop()
Stops the JobManager.
|
void |
stopAndWaitUntilConsumersAreFinished()
Stops the JobManager and waits until all currently running Jobs are complete (or failed).
|
void |
waitUntilConsumersAreFinished()
Waits until all consumers are destroyed.
|
public static final long NS_PER_MS
public static final long NOT_RUNNING_SESSION_ID
public static final long NOT_DELAYED_JOB_DELAY
public static final long NETWORK_CHECK_INTERVAL
public static final long MIN_DELAY_TO_USE_SCHEDULER_IN_MS
public JobManager(Configuration configuration)
configuration
- The configuration to be used for the JobManagerConfiguration.Builder
public java.lang.Thread getJobManagerExecutionThread()
This is the thread where the Jobs' onAdded methods are run.
public Scheduler getScheduler()
The scheduler is used by the JobService to communicate with the JobManager.
public void start()
stop()
public void stop()
start()
public int getActiveConsumerCount()
You cannot call this method on the main thread because it may potentially block it for a long time.
public void destroy()
stopAndWaitUntilConsumersAreFinished()
public void stopAndWaitUntilConsumersAreFinished()
You cannot call this method on the main thread because it may potentially block it for a long time.
destroy()
public void waitUntilConsumersAreFinished()
You cannot call this method on the main thread because it may potentially block it for a long time.
public void addJobInBackground(Job job)
addJob(Job)
.job
- The Job to be addedaddJobInBackground(Job, AsyncAddCallback)
,
addJob(Job)
public void cancelJobsInBackground(CancelResult.AsyncCancelCallback cancelCallback, TagConstraint constraint, java.lang.String... tags)
Job.onRun()
method before
calling the callback.cancelCallback
- The callback to call once cancel is handledconstraint
- The constraint to be used to match tagstags
- The list of tagspublic void addCallback(JobManagerCallback callback)
callback
- The callback to be addedpublic boolean removeCallback(JobManagerCallback callback)
callback
- The callback to be removedpublic void addJob(Job job)
You cannot call this method on the main thread because it may potentially block it for a long
time.
Even if you are not on the main thread, you should prefer using
addJobInBackground(Job)
or addJobInBackground(Job, AsyncAddCallback)
if
you don't need to block your thread until the Job is actually added.
job
- The Job to be addedaddJobInBackground(Job)
,
addJobInBackground(Job, AsyncAddCallback)
public void addJobInBackground(Job job, AsyncAddCallback callback)
job
- The Job to be addedcallback
- The callback to be invoked once Job is saved in the JobManager's queuespublic CancelResult cancelJobs(TagConstraint constraint, java.lang.String... tags)
cancelJobsInBackground(CancelResult.AsyncCancelCallback, TagConstraint, String...)
if possible.
You cannot call this method on the main thread because it may potentially block it for a long time.
constraint
- The constraints to be used for tagstags
- The list of tagspublic int count()
You cannot call this method on the main thread because it may potentially block it for a long time.
public int countReadyJobs()
You cannot call this method on the main thread because it may potentially block it for a long time.
public JobStatus getJobStatus(java.lang.String id)
You cannot call this method on the main thread because it may potentially block it for a long time.
id
- The id of the job (Job.getId()
)public void clear()
You cannot call this method on the main thread because it may potentially block it for a long time.