public abstract class JobService
extends android.app.Service
onStartJob(JobParameters), which is where any asynchronous
execution should start. This method, like most lifecycle methods, runs on the main thread; you
must offload execution to another thread (or AsyncTask, or
Handler, or your favorite flavor of concurrency).
Once any asynchronous work is complete jobFinished(JobParameters, boolean) should be
called to inform the backing driver of the result.
Implementations should also override onStopJob(JobParameters), which will be called if
the scheduling engine wishes to interrupt your work (most likely because the runtime constraints
that are associated with the job in question are no longer met).| Modifier and Type | Class and Description |
|---|---|
static interface |
JobService.JobResult
The result returned from a job execution.
|
| Modifier and Type | Field and Description |
|---|---|
static int |
RESULT_FAIL_NORETRY
Returned to indicate the job encountered an error during execution but should not be retried.
|
static int |
RESULT_FAIL_RETRY
Returned to indicate the job encountered an error during execution and should be retried after
a backoff period.
|
static int |
RESULT_SUCCESS
Returned to indicate the job was executed successfully.
|
START_CONTINUATION_MASK, START_FLAG_REDELIVERY, START_FLAG_RETRY, START_NOT_STICKY, START_REDELIVER_INTENT, START_STICKY, START_STICKY_COMPATIBILITY, STOP_FOREGROUND_DETACH, STOP_FOREGROUND_REMOVEACCESSIBILITY_SERVICE, ACCOUNT_SERVICE, ACTIVITY_SERVICE, ALARM_SERVICE, APP_OPS_SERVICE, APPWIDGET_SERVICE, AUDIO_SERVICE, BATTERY_SERVICE, BIND_ABOVE_CLIENT, BIND_ADJUST_WITH_ACTIVITY, BIND_ALLOW_OOM_MANAGEMENT, BIND_AUTO_CREATE, BIND_DEBUG_UNBIND, BIND_EXTERNAL_SERVICE, BIND_IMPORTANT, BIND_NOT_FOREGROUND, BIND_WAIVE_PRIORITY, BLUETOOTH_SERVICE, CAMERA_SERVICE, CAPTIONING_SERVICE, CARRIER_CONFIG_SERVICE, CLIPBOARD_SERVICE, CONNECTIVITY_SERVICE, CONSUMER_IR_SERVICE, CONTEXT_IGNORE_SECURITY, CONTEXT_INCLUDE_CODE, CONTEXT_RESTRICTED, DEVICE_POLICY_SERVICE, DISPLAY_SERVICE, DOWNLOAD_SERVICE, DROPBOX_SERVICE, FINGERPRINT_SERVICE, HARDWARE_PROPERTIES_SERVICE, INPUT_METHOD_SERVICE, INPUT_SERVICE, JOB_SCHEDULER_SERVICE, KEYGUARD_SERVICE, LAUNCHER_APPS_SERVICE, LAYOUT_INFLATER_SERVICE, LOCATION_SERVICE, MEDIA_PROJECTION_SERVICE, MEDIA_ROUTER_SERVICE, MEDIA_SESSION_SERVICE, MIDI_SERVICE, MODE_APPEND, MODE_ENABLE_WRITE_AHEAD_LOGGING, MODE_MULTI_PROCESS, MODE_NO_LOCALIZED_COLLATORS, MODE_PRIVATE, MODE_WORLD_READABLE, MODE_WORLD_WRITEABLE, NETWORK_STATS_SERVICE, NFC_SERVICE, NOTIFICATION_SERVICE, NSD_SERVICE, POWER_SERVICE, PRINT_SERVICE, RESTRICTIONS_SERVICE, SEARCH_SERVICE, SENSOR_SERVICE, SHORTCUT_SERVICE, STORAGE_SERVICE, SYSTEM_HEALTH_SERVICE, TELECOM_SERVICE, TELEPHONY_SERVICE, TELEPHONY_SUBSCRIPTION_SERVICE, TEXT_SERVICES_MANAGER_SERVICE, TV_INPUT_SERVICE, UI_MODE_SERVICE, USAGE_STATS_SERVICE, USB_SERVICE, USER_SERVICE, VIBRATOR_SERVICE, WALLPAPER_SERVICE, WIFI_P2P_SERVICE, WIFI_SERVICE, WINDOW_SERVICE| Constructor and Description |
|---|
JobService() |
| Modifier and Type | Method and Description |
|---|---|
protected void |
dump(java.io.FileDescriptor fd,
java.io.PrintWriter writer,
java.lang.String[] args) |
void |
jobFinished(JobParameters job,
boolean needsReschedule)
Callback to inform the scheduling driver that you've finished executing.
|
android.os.IBinder |
onBind(android.content.Intent intent) |
void |
onConfigurationChanged(android.content.res.Configuration newConfig) |
void |
onRebind(android.content.Intent intent) |
void |
onStart(android.content.Intent intent,
int startId) |
int |
onStartCommand(android.content.Intent intent,
int flags,
int startId) |
abstract boolean |
onStartJob(JobParameters job)
The entry point to your Job.
|
abstract boolean |
onStopJob(JobParameters job)
Called when the scheduling engine has decided to interrupt the execution of a running job,
most likely because the runtime constraints associated with the job are no longer satisfied.
|
void |
onTaskRemoved(android.content.Intent rootIntent) |
boolean |
onUnbind(android.content.Intent intent) |
getApplication, onCreate, onDestroy, onLowMemory, onTrimMemory, startForeground, stopForeground, stopForeground, stopSelf, stopSelf, stopSelfResultattachBaseContext, bindService, checkCallingOrSelfPermission, checkCallingOrSelfUriPermission, checkCallingPermission, checkCallingUriPermission, checkPermission, checkSelfPermission, checkUriPermission, checkUriPermission, clearWallpaper, createConfigurationContext, createDeviceProtectedStorageContext, createDisplayContext, createPackageContext, databaseList, deleteDatabase, deleteFile, deleteSharedPreferences, enforceCallingOrSelfPermission, enforceCallingOrSelfUriPermission, enforceCallingPermission, enforceCallingUriPermission, enforcePermission, enforceUriPermission, enforceUriPermission, fileList, getApplicationContext, getApplicationInfo, getAssets, getBaseContext, getCacheDir, getClassLoader, getCodeCacheDir, getContentResolver, getDatabasePath, getDataDir, getDir, getExternalCacheDir, getExternalCacheDirs, getExternalFilesDir, getExternalFilesDirs, getExternalMediaDirs, getFilesDir, getFileStreamPath, getMainLooper, getNoBackupFilesDir, getObbDir, getObbDirs, getPackageCodePath, getPackageManager, getPackageName, getPackageResourcePath, getResources, getSharedPreferences, getSystemService, getSystemServiceName, getTheme, getWallpaper, getWallpaperDesiredMinimumHeight, getWallpaperDesiredMinimumWidth, grantUriPermission, isDeviceProtectedStorage, isRestricted, moveDatabaseFrom, moveSharedPreferencesFrom, openFileInput, openFileOutput, openOrCreateDatabase, openOrCreateDatabase, peekWallpaper, registerReceiver, registerReceiver, removeStickyBroadcast, removeStickyBroadcastAsUser, revokeUriPermission, sendBroadcast, sendBroadcast, sendBroadcastAsUser, sendBroadcastAsUser, sendOrderedBroadcast, sendOrderedBroadcast, sendOrderedBroadcastAsUser, sendStickyBroadcast, sendStickyBroadcastAsUser, sendStickyOrderedBroadcast, sendStickyOrderedBroadcastAsUser, setTheme, setWallpaper, setWallpaper, startActivities, startActivities, startActivity, startActivity, startInstrumentation, startIntentSender, startIntentSender, startService, stopService, unbindService, unregisterReceiverpublic static final int RESULT_SUCCESS
public static final int RESULT_FAIL_RETRY
public static final int RESULT_FAIL_NORETRY
@MainThread public abstract boolean onStartJob(JobParameters job)
jobFinished(JobParameters, boolean) to notify the scheduling service
that the work is completed.
In order to reschedule use jobFinished(JobParameters, boolean).true if there is more work remaining in the worker thread, false if
the job was completed.@MainThread public abstract boolean onStopJob(JobParameters job)
JobInvocation.Builder.setRetryStrategy(RetryStrategy),
RetryStrategypublic final void jobFinished(@NonNull
JobParameters job,
boolean needsReschedule)
job - needsReschedule - whether the job should be rescheduledJobInvocation.Builder.setRetryStrategy(RetryStrategy)public final int onStartCommand(android.content.Intent intent,
int flags,
int startId)
onStartCommand in class android.app.Service@Nullable public final android.os.IBinder onBind(android.content.Intent intent)
onBind in class android.app.Servicepublic final boolean onUnbind(android.content.Intent intent)
onUnbind in class android.app.Servicepublic final void onRebind(android.content.Intent intent)
onRebind in class android.app.Servicepublic final void onStart(android.content.Intent intent,
int startId)
onStart in class android.app.Serviceprotected final void dump(java.io.FileDescriptor fd,
java.io.PrintWriter writer,
java.lang.String[] args)
dump in class android.app.Servicepublic final void onConfigurationChanged(android.content.res.Configuration newConfig)
onConfigurationChanged in interface android.content.ComponentCallbacksonConfigurationChanged in class android.app.Servicepublic final void onTaskRemoved(android.content.Intent rootIntent)
onTaskRemoved in class android.app.Service