public class Params
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
static long |
FOREVER
Used in delay / override deadline.
|
static long |
NEVER
Used in delay / override deadline.
|
Constructor and Description |
---|
Params(int priority) |
Modifier and Type | Method and Description |
---|---|
Params |
addTags(java.lang.String... newTags)
Attaches given tags to the Job.
|
Params |
clearTags() |
Params |
delayInMs(long delayMs)
Delays the job in given ms.
|
java.lang.Boolean |
getCancelOnDeadline()
Returns what JobManager will do if job reaches its deadline.
|
long |
getDeadlineMs() |
long |
getDelayMs() |
java.lang.String |
getGroupId() |
int |
getPriority() |
java.lang.String |
getSingleId() |
java.util.HashSet<java.lang.String> |
getTags() |
Params |
groupBy(java.lang.String groupId)
Sets the group id.
|
boolean |
isNetworkRequired() |
boolean |
isPersistent() |
boolean |
isUnmeteredNetworkRequired() |
Params |
overrideDeadlineToCancelInMs(long deadlineInMs)
Set a deadline on the job's constraints.
|
Params |
overrideDeadlineToRunInMs(long deadlineInMs)
Set a deadline on the job's constraints.
|
Params |
persist()
Marks the job as persistent.
|
Params |
removeTags(java.lang.String... oldTags)
Removes the given tags from the Job.
|
Params |
requireNetwork()
Sets the Job as requiring network.
|
Params |
requireUnmeteredNetwork()
Sets the Job as requiring UNMETERED network.
|
Params |
setDelayMs(long delayMs)
convenience method to set delay
|
Params |
setGroupId(java.lang.String groupId)
convenience method to set group id.
|
Params |
setPersistent(boolean persistent)
convenience method to set whether
JobManager should persist this job or not. |
Params |
setRequiresNetwork(boolean requiresNetwork)
Convenience method to set network requirement.
|
Params |
setRequiresUnmeteredNetwork(boolean requiresUnmeteredNetwork)
Convenience method to set unmetered network requirement.
|
Params |
setSingleId(java.lang.String singleId)
convenience method to set single id.
|
boolean |
shouldCancelOnDeadline() |
Params |
singleInstanceBy(java.lang.String singleId)
Sets the single instance id.
|
public static final long FOREVER
public static final long NEVER
public Params requireNetwork()
This method has no effect if you've already called requireUnmeteredNetwork()
.
public Params requireUnmeteredNetwork()
public Params groupBy(java.lang.String groupId)
groupId
- which group this job belongs (can be null of course)public Params singleInstanceBy(java.lang.String singleId)
Job.onCancel(int, Throwable)
called immediately after
Job.onAdded()
and only the previous Job will run. That is, Job.onRun()
will only be called once.
If no group id was set, one will be set automatically.
singleId
- which single instance group this job belongs to (can be null of course)public Params persist()
public Params delayInMs(long delayMs)
delayMs
- .public Params setRequiresNetwork(boolean requiresNetwork)
If you call this method with true
and you've already called
requireUnmeteredNetwork()
, this method has no effect.
requiresNetwork
- true|falserequireNetwork()
public Params setRequiresUnmeteredNetwork(boolean requiresUnmeteredNetwork)
If you call this method with false
and you've already called
requireNetwork()
, this method has no effect.
requiresUnmeteredNetwork
- true|falserequireUnmeteredNetwork()
public Params setGroupId(java.lang.String groupId)
groupId
- The group id for the jobpublic Params setSingleId(java.lang.String singleId)
singleId
- The single instance run id for the jobpublic Params setPersistent(boolean persistent)
JobManager
should persist this job or not.persistent
- true|falsepublic Params setDelayMs(long delayMs)
delayMs
- in mspublic Params addTags(java.lang.String... newTags)
newTags
- List of tags to addpublic Params removeTags(java.lang.String... oldTags)
oldTags
- List of tags to be removedpublic Params clearTags()
public Params overrideDeadlineToRunInMs(long deadlineInMs)
Note that even if a job reaches its deadline, JobManager still respects constraints like groupId because when multiple jobs use the same groupId, they usually access shared resources so it is important to respect groupId while running jobs in parallel.
You can check if a job reached its deadline or not via Job.isDeadlineReached()
.
If you call this method, you cannot call overrideDeadlineToCancelInMs(long)
.
deadlineInMs
- The deadline in milliseconds for the constraints.overrideDeadlineToCancelInMs(long)
public Params overrideDeadlineToCancelInMs(long deadlineInMs)
CancelReason.REACHED_DEADLINE
.
For instance, if you have a job that requires network and if network becomes available at the time deadline is reached, the job will still be cancelled without being run.
You can check if a job reached its deadline or not via Job.isDeadlineReached()
.
Note that even if a job reaches its deadline, JobManager still respects constraints like groupId because when multiple jobs use the same groupId, they usually access shared resources so it is important to respect groupId while running jobs in parallel.
If you call this method, you cannot call overrideDeadlineToRunInMs(long)
.
deadlineInMs
- The deadline in milliseconds for the constraints.overrideDeadlineToRunInMs(long)
public java.lang.String getGroupId()
public java.lang.String getSingleId()
public boolean isPersistent()
public int getPriority()
public long getDelayMs()
public long getDeadlineMs()
public java.lang.Boolean getCancelOnDeadline()
It will be null if Job does not have a deadline.
public java.util.HashSet<java.lang.String> getTags()
public boolean shouldCancelOnDeadline()
public boolean isNetworkRequired()
public boolean isUnmeteredNetworkRequired()