public
static
class
SyncRequest.Builder
extends Object
java.lang.Object | |
↳ | android.content.SyncRequest.Builder |
Builder class for a @link SyncRequest. As you build your SyncRequest this class will also perform validation.
Public constructors | |
---|---|
SyncRequest.Builder()
|
Public methods | |
---|---|
SyncRequest
|
build()
Performs validation over the request and throws the runtime exception
|
SyncRequest.Builder
|
setDisallowMetered(boolean disallow)
Will throw an |
SyncRequest.Builder
|
setExpedited(boolean expedited)
An expedited sync runs immediately and can preempt other non-expedited running syncs. |
SyncRequest.Builder
|
setExtras(Bundle bundle)
Developer-provided extras handed back when sync actually occurs. |
SyncRequest.Builder
|
setIgnoreBackoff(boolean ignoreBackoff)
Convenience function for setting |
SyncRequest.Builder
|
setIgnoreSettings(boolean ignoreSettings)
Convenience function for setting |
SyncRequest.Builder
|
setManual(boolean isManual)
Convenience function for setting |
SyncRequest.Builder
|
setNoRetry(boolean noRetry)
Convenience function for setting |
SyncRequest.Builder
|
setRequiresCharging(boolean requiresCharging)
Specify whether the sync requires the phone to be plugged in. |
SyncRequest.Builder
|
setSyncAdapter(Account account, String authority)
Specify an authority and account for this transfer. |
SyncRequest.Builder
|
syncOnce()
Request that a sync occur immediately. |
SyncRequest.Builder
|
syncPeriodic(long pollFrequency, long beforeSeconds)
Build a periodic sync. |
Inherited methods | |
---|---|
From
class
java.lang.Object
|
SyncRequest build ()
Performs validation over the request and throws the runtime exception
IllegalArgumentException
if this validation fails.
Returns | |
---|---|
SyncRequest |
a SyncRequest with the information contained within this builder. |
SyncRequest.Builder setDisallowMetered (boolean disallow)
Will throw an IllegalArgumentException
if called and
setIgnoreSettings(boolean)
has already been called.
Parameters | |
---|---|
disallow |
boolean :
true to allow this transfer on metered networks. Default false.
|
Returns | |
---|---|
SyncRequest.Builder |
SyncRequest.Builder setExpedited (boolean expedited)
An expedited sync runs immediately and can preempt other non-expedited running syncs.
Not valid for periodic sync and will throw an IllegalArgumentException
in
build()
.
Parameters | |
---|---|
expedited |
boolean :
whether to run expedited. Default false.
|
Returns | |
---|---|
SyncRequest.Builder |
SyncRequest.Builder setExtras (Bundle bundle)
Developer-provided extras handed back when sync actually occurs. This bundle is copied
into the SyncRequest returned by build()
.
Example:
String[] syncItems = {"dog", "cat", "frog", "child"}; SyncRequest.Builder builder = new SyncRequest.Builder() .setSyncAdapter(dummyAccount, dummyProvider) .syncOnce(); for (String syncData : syncItems) { Bundle extras = new Bundle(); extras.setString("data", syncData); builder.setExtras(extras); ContentResolver.sync(builder.build()); // Each sync() request creates a unique sync. }Only values of the following types may be used in the extras bundle:
Parameters | |
---|---|
bundle |
Bundle :
extras bundle to set.
|
Returns | |
---|---|
SyncRequest.Builder |
SyncRequest.Builder setIgnoreBackoff (boolean ignoreBackoff)
Convenience function for setting SYNC_EXTRAS_IGNORE_BACKOFF
.
Ignoring back-off will force the sync scheduling process to ignore any back-off that was
the result of a failed sync, as well as to invalidate any delayUntil
value that may have been set by the adapter. Successive failures will not honor this
flag. Not valid for periodic sync and will throw an IllegalArgumentException
in build()
.
Parameters | |
---|---|
ignoreBackoff |
boolean :
ignore back off settings. Default false.
|
Returns | |
---|---|
SyncRequest.Builder |
SyncRequest.Builder setIgnoreSettings (boolean ignoreSettings)
Convenience function for setting SYNC_EXTRAS_IGNORE_SETTINGS
.
Not valid for periodic sync and will throw an IllegalArgumentException
in
build()
.
Throws IllegalArgumentException
if called and
setDisallowMetered(boolean)
has been set.
Parameters | |
---|---|
ignoreSettings |
boolean :
true to ignore the sync automatically settings. Default false.
|
Returns | |
---|---|
SyncRequest.Builder |
SyncRequest.Builder setManual (boolean isManual)
Convenience function for setting SYNC_EXTRAS_MANUAL
.
Not valid for periodic sync and will throw an IllegalArgumentException
in
build()
.
Parameters | |
---|---|
isManual |
boolean :
User-initiated sync or not. Default false.
|
Returns | |
---|---|
SyncRequest.Builder |
SyncRequest.Builder setNoRetry (boolean noRetry)
Convenience function for setting SYNC_EXTRAS_DO_NOT_RETRY
.
A one-off sync operation that fails will be retried with exponential back-off unless
this is set to false. Not valid for periodic sync and will throw an
IllegalArgumentException
in build().
Parameters | |
---|---|
noRetry |
boolean :
true to not retry a failed sync. Default false.
|
Returns | |
---|---|
SyncRequest.Builder |
SyncRequest.Builder setRequiresCharging (boolean requiresCharging)
Specify whether the sync requires the phone to be plugged in.
Parameters | |
---|---|
requiresCharging |
boolean :
true if sync requires the phone to be plugged in. Default false.
|
Returns | |
---|---|
SyncRequest.Builder |
SyncRequest.Builder setSyncAdapter (Account account, String authority)
Specify an authority and account for this transfer.
Parameters | |
---|---|
account |
Account :
Account to sync. Can be null unless this is a periodic
sync, for which verification by the ContentResolver will
fail. If a sync is performed without an account, the
|
authority |
String :
A String identifying the content provider to be synced. |
Returns | |
---|---|
SyncRequest.Builder |
SyncRequest.Builder syncOnce ()
Request that a sync occur immediately. Example
SyncRequest.Builder builder = (new SyncRequest.Builder()).syncOnce();
Returns | |
---|---|
SyncRequest.Builder |
SyncRequest.Builder syncPeriodic (long pollFrequency, long beforeSeconds)
Build a periodic sync. Either this or syncOnce() must be called for this builder.
Syncs are identified by target android.provider
and by the
contents of the extras bundle.
You cannot reuse the same builder for one-time syncs after having specified a periodic
sync (by calling this function). If you do, an IllegalArgumentException
will be thrown.
The bundle for a periodic sync can be queried by applications with the correct
permissions using
getPeriodicSyncs(Account, String)
, so no
sensitive data should be transferred here.
Example usage.
Request a periodic sync every 5 hours with 20 minutes of flex. SyncRequest.Builder builder = (new SyncRequest.Builder()).syncPeriodic(5 * HOUR_IN_SECS, 20 * MIN_IN_SECS); Schedule a periodic sync every hour at any point in time during that hour. SyncRequest.Builder builder = (new SyncRequest.Builder()).syncPeriodic(1 * HOUR_IN_SECS, 1 * HOUR_IN_SECS);N.B.: Periodic syncs are not allowed to have any of
SYNC_EXTRAS_DO_NOT_RETRY
,
SYNC_EXTRAS_IGNORE_BACKOFF
,
SYNC_EXTRAS_IGNORE_SETTINGS
,
SYNC_EXTRAS_INITIALIZE
,
SYNC_EXTRAS_FORCE
,
SYNC_EXTRAS_EXPEDITED
,
SYNC_EXTRAS_MANUAL
set to true. If any are supplied then an IllegalArgumentException
will
be thrown.
Parameters | |
---|---|
pollFrequency |
long :
the amount of time in seconds that you wish
to elapse between periodic syncs. A minimum period of 1 hour is enforced. |
beforeSeconds |
long :
the amount of flex time in seconds before
pollFrequency that you permit for the sync to take
place. Must be less than pollFrequency and greater than
MAX(5% of pollFrequency , 5 minutes)
|
Returns | |
---|---|
SyncRequest.Builder |