JobIntentService

Added in 1.1.0
Deprecated in 1.6.0

public abstract class JobIntentService extends Service


Helper for processing work that has been enqueued for a job/service. When running on Android O or later, the work will be dispatched as a job via JobScheduler.enqueue. When running on older versions of the platform, it will use Context.startService.

You must publish your subclass in your manifest for the system to interact with. This should be published as a android.app.job.JobService, as described for that class, since on O and later platforms it will be executed that way.

Use enqueueWork to enqueue new work to be dispatched to and handled by your service. It will be executed in onHandleWork.

You do not need to use androidx.legacy.content.WakefulBroadcastReceiver when using this class. When running on Android O, the JobScheduler will take care of wake locks for you (holding a wake lock from the time you enqueue work until the job has been dispatched and while it is running). When running on previous versions of the platform, this wake lock handling is emulated in the class here by directly calling the PowerManager; this means the application must request the WAKE_LOCK permission.

There are a few important differences in behavior when running on Android O or later as a Job vs. pre-O:

  • When running as a pre-O service, the act of enqueueing work will generally start the service immediately, regardless of whether the device is dozing or in other conditions. When running as a Job, it will be subject to standard JobScheduler policies for a Job with a setOverrideDeadline of 0: the job will not run while the device is dozing, it may get delayed more than a service if the device is under strong memory pressure with lots of demand to run jobs.

  • When running as a pre-O service, the normal service execution semantics apply: the service can run indefinitely, though the longer it runs the more likely the system will be to outright kill its process, and under memory pressure one should expect the process to be killed even of recently started services. When running as a Job, the typical android.app.job.JobService execution time limit will apply, after which the job will be stopped (cleanly, not by killing the process) and rescheduled to continue its execution later. Job are generally not killed when the system is under memory pressure, since the number of concurrent jobs is adjusted based on the memory state of the device.

Here is an example implementation of this class:

import android.content.Context;
import android.content.Intent;
import android.os.Handler;
import android.os.SystemClock;
import android.util.Log;
import android.widget.Toast;

import androidx.core.app.JobIntentService;

import org.jspecify.annotations.NonNull;

/**
 * Example implementation of a JobIntentService.
 */
public class SimpleJobIntentService extends JobIntentService {
    /**
     * Unique job ID for this service.
     */
    static final int JOB_ID = 1000;

    /**
     * Convenience method for enqueuing work in to this service.
     */
    static void enqueueWork(Context context, Intent work) {
        enqueueWork(context, SimpleJobIntentService.class, JOB_ID, work);
    }

    @Override
    protected void onHandleWork(@NonNull Intent intent) {
        // We have received work to do.  The system or framework is already
        // holding a wake lock for us at this point, so we can just go.
        Log.i("SimpleJobIntentService", "Executing work: " + intent);
        String label = intent.getStringExtra("label");
        if (label == null) {
            label = intent.toString();
        }
        toast("Executing: " + label);
        for (int i = 0; i < 5; i++) {
            Log.i("SimpleJobIntentService", "Running service " + (i + 1)
                    + "/5 @ " + SystemClock.elapsedRealtime());
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
            }
        }
        Log.i("SimpleJobIntentService", "Completed service @ " + SystemClock.elapsedRealtime());
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        toast("All work complete");
    }

    @SuppressWarnings("deprecation")
    final Handler mHandler = new Handler();

    // Helper for showing tests
    void toast(final CharSequence text) {
        mHandler.post(new Runnable() {
            @Override public void run() {
                Toast.makeText(SimpleJobIntentService.this, text, Toast.LENGTH_SHORT).show();
            }
        });
    }
}

Summary

Public constructors

This method is deprecated. Deprecated in Java

Public methods

static void
enqueueWork(
    @NonNull Context context,
    @NonNull Class<@NonNull ?> cls,
    int jobId,
    @NonNull Intent work
)

This method is deprecated. Deprecated in Java

static void
enqueueWork(
    @NonNull Context context,
    @NonNull ComponentName component,
    int jobId,
    @NonNull Intent work
)

This method is deprecated. Deprecated in Java

boolean

This method is deprecated. Deprecated in Java

IBinder

This method is deprecated. Deprecated in Java

void

This method is deprecated. Deprecated in Java

void

This method is deprecated. Deprecated in Java

int
onStartCommand(@Nullable Intent intent, int flags, int startId)

This method is deprecated. Deprecated in Java

boolean

This method is deprecated. Deprecated in Java

void
setInterruptIfStopped(boolean interruptIfStopped)

This method is deprecated. Deprecated in Java

Protected methods

abstract void

This method is deprecated. Deprecated in Java

Inherited Constants

From android.content.ComponentCallbacks2
static final int

This field is deprecated. Deprecated in Java

static final int

This field is deprecated.

static final int

This field is deprecated.

static final int

This field is deprecated.

static final int

This field is deprecated.

static final int

This field is deprecated.

static final int

This field is deprecated. Deprecated in Java

From android.content.Context
static final String
ACCESSIBILITY_SERVICE = "accessibility"

This field is deprecated. Deprecated in Java

static final String
ACCOUNT_SERVICE = "account"

This field is deprecated. Deprecated in Java

static final String
ACTIVITY_SERVICE = "activity"

This field is deprecated. Deprecated in Java

static final String
ADVANCED_PROTECTION_SERVICE = "advanced_protection"

This field is deprecated. Deprecated in Java

static final String
ALARM_SERVICE = "alarm"

This field is deprecated. Deprecated in Java

static final String
APPWIDGET_SERVICE = "appwidget"

This field is deprecated. Deprecated in Java

static final String
APP_FUNCTION_SERVICE = "app_function"

This field is deprecated. Deprecated in Java

static final String
APP_OPS_SERVICE = "appops"

This field is deprecated. Deprecated in Java

static final String
APP_SEARCH_SERVICE = "app_search"

This field is deprecated. Deprecated in Java

static final String
AUDIO_SERVICE = "audio"

This field is deprecated. Deprecated in Java

static final String
AUTOFILL_SERVICE = "autofill"

This field is deprecated. Deprecated in Java

static final String
BATTERY_SERVICE = "batterymanager"

This field is deprecated. Deprecated in Java

static final int

This field is deprecated. Deprecated in Java

static final int

This field is deprecated. Deprecated in Java

static final int

This field is deprecated. Deprecated in Java

static final int

This field is deprecated. Deprecated in Java

static final int

This field is deprecated. Deprecated in Java

static final int

This field is deprecated. Deprecated in Java

static final int
BIND_EXTERNAL_SERVICE = -2147483648

This field is deprecated. Deprecated in Java

static final long
BIND_EXTERNAL_SERVICE_LONG = 4611686018427387904

This field is deprecated. Deprecated in Java

static final int

This field is deprecated. Deprecated in Java

static final int

This field is deprecated. Deprecated in Java

static final int

This field is deprecated. Deprecated in Java

static final int

This field is deprecated. Deprecated in Java

static final int

This field is deprecated. Deprecated in Java

static final int

This field is deprecated. Deprecated in Java

static final int

This field is deprecated. Deprecated in Java

static final String
BIOMETRIC_SERVICE = "biometric"

This field is deprecated. Deprecated in Java

static final String
BLOB_STORE_SERVICE = "blob_store"

This field is deprecated. Deprecated in Java

static final String
BLUETOOTH_SERVICE = "bluetooth"

This field is deprecated. Deprecated in Java

static final String
BUGREPORT_SERVICE = "bugreport"

This field is deprecated. Deprecated in Java

static final String
CAMERA_SERVICE = "camera"

This field is deprecated. Deprecated in Java

static final String
CAPTIONING_SERVICE = "captioning"

This field is deprecated. Deprecated in Java

static final String
CARRIER_CONFIG_SERVICE = "carrier_config"

This field is deprecated. Deprecated in Java

static final String
CHOOSER_SERVICE = "chooser"

This field is deprecated. Deprecated in Java

static final String
CLIPBOARD_SERVICE = "clipboard"

This field is deprecated. Deprecated in Java

static final String
COMPANION_DEVICE_SERVICE = "companiondevice"

This field is deprecated. Deprecated in Java

static final String
CONNECTIVITY_DIAGNOSTICS_SERVICE = "connectivity_diagnostics"

This field is deprecated. Deprecated in Java

static final String
CONNECTIVITY_SERVICE = "connectivity"

This field is deprecated. Deprecated in Java

static final String
CONSUMER_IR_SERVICE = "consumer_ir"

This field is deprecated. Deprecated in Java

static final String
CONTACT_KEYS_SERVICE = "contact_keys"

This field is deprecated. Deprecated in Java

static final int

This field is deprecated. Deprecated in Java

static final int

This field is deprecated. Deprecated in Java

static final int

This field is deprecated. Deprecated in Java

static final String
CREDENTIAL_SERVICE = "credential"

This field is deprecated. Deprecated in Java

static final String
CROSS_PROFILE_APPS_SERVICE = "crossprofileapps"

This field is deprecated. Deprecated in Java

static final int

This field is deprecated. Deprecated in Java

static final int

This field is deprecated. Deprecated in Java

static final String
DEVICE_LOCK_SERVICE = "device_lock"

This field is deprecated. Deprecated in Java

static final String
DEVICE_POLICY_SERVICE = "device_policy"

This field is deprecated. Deprecated in Java

static final String
DISPLAY_HASH_SERVICE = "display_hash"

This field is deprecated. Deprecated in Java

static final String
DISPLAY_SERVICE = "display"

This field is deprecated. Deprecated in Java

static final String
DOMAIN_VERIFICATION_SERVICE = "domain_verification"

This field is deprecated. Deprecated in Java

static final String
DOWNLOAD_SERVICE = "download"

This field is deprecated. Deprecated in Java

static final String
DROPBOX_SERVICE = "dropbox"

This field is deprecated. Deprecated in Java

static final String
EUICC_SERVICE = "euicc"

This field is deprecated. Deprecated in Java

static final String
FILE_INTEGRITY_SERVICE = "file_integrity"

This field is deprecated. Deprecated in Java

static final String
FILE_SERVICE = "file"

This field is deprecated. Deprecated in Java

static final String
GAME_SERVICE = "game"

This field is deprecated. Deprecated in Java

static final String
GRAMMATICAL_INFLECTION_SERVICE = "grammatical_inflection"

This field is deprecated. Deprecated in Java

static final String
HARDWARE_PROPERTIES_SERVICE = "hardware_properties"

This field is deprecated. Deprecated in Java

static final String
HEALTHCONNECT_SERVICE = "healthconnect"

This field is deprecated. Deprecated in Java

static final String
INPUT_METHOD_SERVICE = "input_method"

This field is deprecated. Deprecated in Java

static final String
INPUT_SERVICE = "input"

This field is deprecated. Deprecated in Java

static final String
IPSEC_SERVICE = "ipsec"

This field is deprecated. Deprecated in Java

static final String
JOB_SCHEDULER_SERVICE = "jobscheduler"

This field is deprecated. Deprecated in Java

static final String
KEYGUARD_SERVICE = "keyguard"

This field is deprecated. Deprecated in Java

static final String
KEYSTORE_SERVICE = "keystore"

This field is deprecated. Deprecated in Java

static final String
LAUNCHER_APPS_SERVICE = "launcherapps"

This field is deprecated. Deprecated in Java

static final String
LAYOUT_INFLATER_SERVICE = "layout_inflater"

This field is deprecated. Deprecated in Java

static final String
LOCALE_SERVICE = "locale"

This field is deprecated. Deprecated in Java

static final String
LOCATION_SERVICE = "location"

This field is deprecated. Deprecated in Java

static final String
MEDIA_COMMUNICATION_SERVICE = "media_communication"

This field is deprecated. Deprecated in Java

static final String
MEDIA_METRICS_SERVICE = "media_metrics"

This field is deprecated. Deprecated in Java

static final String
MEDIA_PROJECTION_SERVICE = "media_projection"

This field is deprecated. Deprecated in Java

static final String
MEDIA_QUALITY_SERVICE = "media_quality"

This field is deprecated. Deprecated in Java

static final String
MEDIA_ROUTER_SERVICE = "media_router"

This field is deprecated. Deprecated in Java

static final String
MEDIA_SESSION_SERVICE = "media_session"

This field is deprecated. Deprecated in Java

static final String
MIDI_SERVICE = "midi"

This field is deprecated. Deprecated in Java

static final int
MODE_APPEND = 32768

This field is deprecated. Deprecated in Java

static final int

This field is deprecated. Deprecated in Java

static final int

This field is deprecated.

static final int

This field is deprecated. Deprecated in Java

static final int

This field is deprecated. Deprecated in Java

static final int

This field is deprecated.

static final int

This field is deprecated.

static final String

This field is deprecated. Deprecated in Java

static final String
NFC_SERVICE = "nfc"

This field is deprecated. Deprecated in Java

static final String
NOTIFICATION_SERVICE = "notification"

This field is deprecated. Deprecated in Java

static final String
NPU_SERVICE = "npu"

This field is deprecated. Deprecated in Java

static final String
NSD_SERVICE = "servicediscovery"

This field is deprecated. Deprecated in Java

static final String
OVERLAY_SERVICE = "overlay"

This field is deprecated. Deprecated in Java

static final String
PCC_SANDBOX_SERVICE = "pcc_sandbox"

This field is deprecated. Deprecated in Java

static final String
PEOPLE_SERVICE = "people"

This field is deprecated. Deprecated in Java

static final String
PERFORMANCE_HINT_SERVICE = "performance_hint"

This field is deprecated. Deprecated in Java

static final String
PERSISTENT_DATA_BLOCK_SERVICE = "persistent_data_block"

This field is deprecated. Deprecated in Java

static final String
POWER_SERVICE = "power"

This field is deprecated. Deprecated in Java

static final String
PRINT_SERVICE = "print"

This field is deprecated. Deprecated in Java

static final String
PROFILING_SERVICE = "profiling"

This field is deprecated. Deprecated in Java

static final int

This field is deprecated. Deprecated in Java

static final int

This field is deprecated. Deprecated in Java

static final int

This field is deprecated. Deprecated in Java

static final String
RESTRICTIONS_SERVICE = "restrictions"

This field is deprecated. Deprecated in Java

static final String
ROLE_SERVICE = "role"

This field is deprecated. Deprecated in Java

static final String
SATELLITE_SERVICE = "satellite"

This field is deprecated. Deprecated in Java

static final String
SEARCH_SERVICE = "search"

This field is deprecated. Deprecated in Java

static final String
SECURITY_STATE_SERVICE = "security_state"

This field is deprecated. Deprecated in Java

static final String
SENSOR_SERVICE = "sensor"

This field is deprecated. Deprecated in Java

static final String
SERIAL_SERVICE = "serial"

This field is deprecated. Deprecated in Java

static final String
SHORTCUT_SERVICE = "shortcut"

This field is deprecated. Deprecated in Java

static final String
STATUS_BAR_SERVICE = "statusbar"

This field is deprecated. Deprecated in Java

static final String
STORAGE_SERVICE = "storage"

This field is deprecated. Deprecated in Java

static final String
STORAGE_STATS_SERVICE = "storagestats"

This field is deprecated. Deprecated in Java

static final String
SYSTEM_HEALTH_SERVICE = "systemhealth"

This field is deprecated. Deprecated in Java

static final String
TELECOM_SERVICE = "telecom"

This field is deprecated. Deprecated in Java

static final String
TELEPHONY_IMS_SERVICE = "telephony_ims"

This field is deprecated. Deprecated in Java

static final String
TELEPHONY_PHONE_NUMBER_SERVICE = "telephony_phone_number"

This field is deprecated. Deprecated in Java

static final String

This field is deprecated. Deprecated in Java

static final String
TELEPHONY_SUBSCRIPTION_SERVICE = "telephony_subscription_service"

This field is deprecated. Deprecated in Java

static final String
TETHERING_SERVICE = "tethering"

This field is deprecated. Deprecated in Java

static final String
TEXT_CLASSIFICATION_SERVICE = "textclassification"

This field is deprecated. Deprecated in Java

static final String

This field is deprecated. Deprecated in Java

static final String
TV_AD_SERVICE = "tv_ad"

This field is deprecated. Deprecated in Java

static final String
TV_INPUT_SERVICE = "tv_input"

This field is deprecated. Deprecated in Java

static final String
TV_INTERACTIVE_APP_SERVICE = "tv_interactive_app"

This field is deprecated. Deprecated in Java

static final String
UI_MODE_SERVICE = "uimode"

This field is deprecated. Deprecated in Java

static final String
USAGE_STATS_SERVICE = "usagestats"

This field is deprecated. Deprecated in Java

static final String
USB_SERVICE = "usb"

This field is deprecated. Deprecated in Java

static final String
USER_SERVICE = "user"

This field is deprecated. Deprecated in Java

static final String
VIBRATOR_MANAGER_SERVICE = "vibrator_manager"

This field is deprecated. Deprecated in Java

static final String
VIBRATOR_SERVICE = "vibrator"

This field is deprecated.

static final String
VIRTUAL_DEVICE_SERVICE = "virtualdevice"

This field is deprecated. Deprecated in Java

static final String
VPN_MANAGEMENT_SERVICE = "vpn_management"

This field is deprecated. Deprecated in Java

static final String
WALLPAPER_SERVICE = "wallpaper"

This field is deprecated. Deprecated in Java

static final String
WEB_APP_SERVICE = "web_app"

This field is deprecated. Deprecated in Java

static final String
WIFI_AWARE_SERVICE = "wifiaware"

This field is deprecated. Deprecated in Java

static final String
WIFI_P2P_SERVICE = "wifip2p"

This field is deprecated. Deprecated in Java

static final String

This field is deprecated. Deprecated in Java

static final String
WIFI_SERVICE = "wifi"

This field is deprecated. Deprecated in Java

static final String
WINDOW_SERVICE = "window"

This field is deprecated. Deprecated in Java

From android.app.Service
static final int

This field is deprecated. Deprecated in Java

static final int

This field is deprecated. Deprecated in Java

static final int

This field is deprecated. Deprecated in Java

static final int

This field is deprecated. Deprecated in Java

static final int

This field is deprecated. Deprecated in Java

static final int

This field is deprecated. Deprecated in Java

static final int

This field is deprecated. Deprecated in Java

static final int

This field is deprecated. Deprecated in Java

static final int

This field is deprecated.

static final int

This field is deprecated. Deprecated in Java

Inherited methods

From android.content.Context
final int
getColor(int id)

This method is deprecated. Deprecated in Java

final ColorStateList

This method is deprecated. Deprecated in Java

final Drawable
getDrawable(int id)

This method is deprecated. Deprecated in Java

final String
getString(int resId)

This method is deprecated. Deprecated in Java

final T
<T> getSystemService(Class<T> serviceClass)

This method is deprecated. Deprecated in Java

final CharSequence
getText(int resId)

This method is deprecated. Deprecated in Java

Context.BindServiceFlags

This method is deprecated. Deprecated in Java

final TypedArray

This method is deprecated. Deprecated in Java

void

This method is deprecated. Deprecated in Java

void
sendBroadcastWithMultiplePermissions(
    Intent intent,
    String[] receiverPermissions
)

This method is deprecated. Deprecated in Java

From android.content.ContextWrapper
boolean
bindIsolatedService(
    Intent service,
    int flags,
    String instanceName,
    Executor executor,
    ServiceConnection conn
)

This method is deprecated. Deprecated in Java

boolean
bindService(
    Intent service,
    Context.BindServiceFlags flags,
    Executor executor,
    ServiceConnection conn
)

This method is deprecated. Deprecated in Java

boolean
bindServiceAsUser(
    Intent service,
    ServiceConnection conn,
    Context.BindServiceFlags flags,
    UserHandle user
)

This method is deprecated. Deprecated in Java

int

This method is deprecated. Deprecated in Java

int
checkCallingOrSelfUriPermission(Uri uri, int modeFlags)

This method is deprecated. Deprecated in Java

int[]
checkCallingOrSelfUriPermissions(List<Uri> uris, int modeFlags)

This method is deprecated. Deprecated in Java

int

This method is deprecated. Deprecated in Java

int
checkCallingUriPermission(Uri uri, int modeFlags)

This method is deprecated. Deprecated in Java

int[]
checkCallingUriPermissions(List<Uri> uris, int modeFlags)

This method is deprecated. Deprecated in Java

int
checkContentUriPermissionFull(Uri uri, int pid, int uid, int modeFlags)

This method is deprecated. Deprecated in Java

int
checkPermission(String permission, int pid, int uid)

This method is deprecated. Deprecated in Java

int

This method is deprecated. Deprecated in Java

int
checkUriPermission(Uri uri, int pid, int uid, int modeFlags)

This method is deprecated. Deprecated in Java

int[]
checkUriPermissions(List<Uri> uris, int pid, int uid, int modeFlags)

This method is deprecated. Deprecated in Java

void

This method is deprecated.

Context

This method is deprecated. Deprecated in Java

Context

This method is deprecated. Deprecated in Java

Context

This method is deprecated. Deprecated in Java

Context

This method is deprecated. Deprecated in Java

Context
createDeviceContext(int deviceId)

This method is deprecated. Deprecated in Java

Context

This method is deprecated. Deprecated in Java

Context

This method is deprecated. Deprecated in Java

Context
createPackageContext(String packageName, int flags)

This method is deprecated. Deprecated in Java

Context
createWindowContext(Display display, int type, Bundle options)

This method is deprecated. Deprecated in Java

String[]

This method is deprecated. Deprecated in Java

boolean

This method is deprecated. Deprecated in Java

boolean

This method is deprecated. Deprecated in Java

boolean

This method is deprecated. Deprecated in Java

void

This method is deprecated. Deprecated in Java

void
enforceCallingOrSelfUriPermission(
    Uri uri,
    int modeFlags,
    String message
)

This method is deprecated. Deprecated in Java

void
enforceCallingPermission(String permission, String message)

This method is deprecated. Deprecated in Java

void
enforceCallingUriPermission(Uri uri, int modeFlags, String message)

This method is deprecated. Deprecated in Java

void
enforcePermission(String permission, int pid, int uid, String message)

This method is deprecated. Deprecated in Java

void
enforceUriPermission(
    Uri uri,
    int pid,
    int uid,
    int modeFlags,
    String message
)

This method is deprecated. Deprecated in Java

String[]

This method is deprecated. Deprecated in Java

Context

This method is deprecated. Deprecated in Java

ApplicationInfo

This method is deprecated. Deprecated in Java

AssetManager

This method is deprecated. Deprecated in Java

AttributionSource

This method is deprecated. Deprecated in Java

String

This method is deprecated. Deprecated in Java

Context

This method is deprecated. Deprecated in Java

File

This method is deprecated. Deprecated in Java

ClassLoader

This method is deprecated. Deprecated in Java

File

This method is deprecated. Deprecated in Java

ContentResolver

This method is deprecated. Deprecated in Java

File

This method is deprecated. Deprecated in Java

File

This method is deprecated. Deprecated in Java

int

This method is deprecated. Deprecated in Java

File
getDir(String name, int mode)

This method is deprecated. Deprecated in Java

Display

This method is deprecated. Deprecated in Java

File

This method is deprecated. Deprecated in Java

File[]

This method is deprecated. Deprecated in Java

File

This method is deprecated. Deprecated in Java

File[]

This method is deprecated. Deprecated in Java

File[]

This method is deprecated.

File

This method is deprecated. Deprecated in Java

File

This method is deprecated. Deprecated in Java

Executor

This method is deprecated. Deprecated in Java

Looper

This method is deprecated. Deprecated in Java

File

This method is deprecated. Deprecated in Java

File

This method is deprecated. Deprecated in Java

File[]

This method is deprecated. Deprecated in Java

String

This method is deprecated. Deprecated in Java

String

This method is deprecated. Deprecated in Java

PackageManager

This method is deprecated. Deprecated in Java

String

This method is deprecated. Deprecated in Java

String

This method is deprecated. Deprecated in Java

ContextParams

This method is deprecated. Deprecated in Java

Resources

This method is deprecated. Deprecated in Java

SharedPreferences
getSharedPreferences(String name, int mode)

This method is deprecated. Deprecated in Java

Object

This method is deprecated. Deprecated in Java

String

This method is deprecated. Deprecated in Java

Resources.Theme

This method is deprecated. Deprecated in Java

Drawable

This method is deprecated.

int

This method is deprecated.

int

This method is deprecated.

void
grantUriPermission(String toPackage, Uri uri, int modeFlags)

This method is deprecated. Deprecated in Java

boolean

This method is deprecated. Deprecated in Java

boolean

This method is deprecated. Deprecated in Java

boolean

This method is deprecated. Deprecated in Java

boolean
moveDatabaseFrom(Context sourceContext, String name)

This method is deprecated. Deprecated in Java

boolean
moveSharedPreferencesFrom(Context sourceContext, String name)

This method is deprecated. Deprecated in Java

FileInputStream

This method is deprecated. Deprecated in Java

FileOutputStream
openFileOutput(String name, int mode)

This method is deprecated. Deprecated in Java

SQLiteDatabase
openOrCreateDatabase(
    String name,
    int mode,
    SQLiteDatabase.CursorFactory factory
)

This method is deprecated. Deprecated in Java

Drawable

This method is deprecated.

void

This method is deprecated. Deprecated in Java

void

This method is deprecated. Deprecated in Java

void

This method is deprecated. Deprecated in Java

Intent

This method is deprecated. Deprecated in Java

void

This method is deprecated.

void

This method is deprecated.

void

This method is deprecated. Deprecated in Java

void
revokeUriPermission(Uri uri, int modeFlags)

This method is deprecated. Deprecated in Java

void

This method is deprecated. Deprecated in Java

void

This method is deprecated. Deprecated in Java

void
sendOrderedBroadcast(
    Intent intent,
    int initialCode,
    String receiverPermission,
    String receiverAppOp,
    BroadcastReceiver resultReceiver,
    Handler scheduler,
    String initialData,
    Bundle initialExtras,
    Bundle options
)

This method is deprecated. Deprecated in Java

void
sendOrderedBroadcastAsUser(
    Intent intent,
    UserHandle user,
    String receiverPermission,
    BroadcastReceiver resultReceiver,
    Handler scheduler,
    int initialCode,
    String initialData,
    Bundle initialExtras
)

This method is deprecated. Deprecated in Java

void

This method is deprecated.

void

This method is deprecated.

void
sendStickyOrderedBroadcast(
    Intent intent,
    BroadcastReceiver resultReceiver,
    Handler scheduler,
    int initialCode,
    String initialData,
    Bundle initialExtras
)

This method is deprecated.

void
sendStickyOrderedBroadcastAsUser(
    Intent intent,
    UserHandle user,
    BroadcastReceiver resultReceiver,
    Handler scheduler,
    int initialCode,
    String initialData,
    Bundle initialExtras
)

This method is deprecated.

void
setTheme(int resid)

This method is deprecated. Deprecated in Java

void

This method is deprecated.

void
startActivities(Intent[] intents)

This method is deprecated. Deprecated in Java

void

This method is deprecated. Deprecated in Java

ComponentName

This method is deprecated. Deprecated in Java

boolean
startInstrumentation(
    ComponentName className,
    String profileFile,
    Bundle arguments
)

This method is deprecated. Deprecated in Java

void
startIntentSender(
    IntentSender intent,
    Intent fillInIntent,
    int flagsMask,
    int flagsValues,
    int extraFlags
)

This method is deprecated. Deprecated in Java

ComponentName

This method is deprecated. Deprecated in Java

boolean

This method is deprecated. Deprecated in Java

void

This method is deprecated. Deprecated in Java

void

This method is deprecated. Deprecated in Java

void

This method is deprecated. Deprecated in Java

void

This method is deprecated. Deprecated in Java

void

This method is deprecated. Deprecated in Java

void
updateServiceGroup(ServiceConnection conn, int group, int importance)

This method is deprecated. Deprecated in Java

From android.app.Service
void

This method is deprecated. Deprecated in Java

void
dump(FileDescriptor fd, PrintWriter writer, String[] args)

This method is deprecated. Deprecated in Java

final Application

This method is deprecated. Deprecated in Java

final int

This method is deprecated. Deprecated in Java

void

This method is deprecated. Deprecated in Java

void

This method is deprecated.

void
onRebind(Intent intent)

This method is deprecated. Deprecated in Java

void
onStart(Intent intent, int startId)

This method is deprecated.

void
onTaskRemoved(Intent rootIntent)

This method is deprecated. Deprecated in Java

void
onTimeout(int startId)

This method is deprecated. Deprecated in Java

void
onTrimMemory(int level)

This method is deprecated. Deprecated in Java

boolean
onUnbind(Intent intent)

This method is deprecated. Deprecated in Java

final void
startForeground(int id, Notification notification)

This method is deprecated. Deprecated in Java

final void
stopForeground(boolean removeNotification)

This method is deprecated.

final void

This method is deprecated. Deprecated in Java

final boolean
stopSelfResult(int startId)

This method is deprecated. Deprecated in Java

Public constructors

JobIntentService

Added in 1.1.0
Deprecated in 1.6.0
public JobIntentService()

Default empty constructor.

Public methods

enqueueWork

Added in 1.2.0
Deprecated in 1.6.0
public static void enqueueWork(
    @NonNull Context context,
    @NonNull Class<@NonNull ?> cls,
    int jobId,
    @NonNull Intent work
)

Call this to enqueue work for your subclass of JobIntentService. This will either directly start the service (when running on pre-O platforms) or enqueue work for it as a job (when running on O and later). In either case, a wake lock will be held for you to ensure you continue running. The work you enqueue will ultimately appear at onHandleWork.

Parameters
@NonNull Context context

Context this is being called from.

@NonNull Class<@NonNull ?> cls

The concrete class the work should be dispatched to (this is the class that is published in your manifest).

int jobId

A unique job ID for scheduling; must be the same value for all work enqueued for the same class.

@NonNull Intent work

The Intent of work to enqueue.

enqueueWork

Added in 1.1.0
Deprecated in 1.6.0
public static void enqueueWork(
    @NonNull Context context,
    @NonNull ComponentName component,
    int jobId,
    @NonNull Intent work
)

Like enqueueWork, but supplies a ComponentName for the service to interact with instead of its class.

Parameters
@NonNull Context context

Context this is being called from.

@NonNull ComponentName component

The published ComponentName of the class this work should be dispatched to.

int jobId

A unique job ID for scheduling; must be the same value for all work enqueued for the same class.

@NonNull Intent work

The Intent of work to enqueue.

isStopped

Added in 1.1.0
Deprecated in 1.6.0
public boolean isStopped()

Returns true if onStopCurrentWork has been called. You can use this, while executing your work, to see if it should be stopped.

onBind

Added in 1.1.0
Deprecated in 1.6.0
public IBinder onBind(@NonNull Intent intent)

Returns the IBinder for the android.app.job.JobServiceEngine when running as a JobService on O and later platforms.

onCreate

public void onCreate()

onDestroy

public void onDestroy()

onStartCommand

public int onStartCommand(@Nullable Intent intent, int flags, int startId)

Processes start commands when running as a pre-O service, enqueueing them to be later dispatched in onHandleWork.

onStopCurrentWork

Added in 1.1.0
Deprecated in 1.6.0
public boolean onStopCurrentWork()

This will be called if the JobScheduler has decided to stop this job. The job for this service does not have any constraints specified, so this will only generally happen if the service exceeds the job's maximum execution time.

Returns
boolean

True to indicate to the JobManager whether you'd like to reschedule this work, false to drop this and all following work. Regardless of the value returned, your service must stop executing or the system will ultimately kill it. The default implementation returns true, and that is most likely what you want to return as well (so no work gets lost).

setInterruptIfStopped

Added in 1.1.0
Deprecated in 1.6.0
public void setInterruptIfStopped(boolean interruptIfStopped)

Control whether code executing in onHandleWork will be interrupted if the job is stopped. By default this is false. If called and set to true, any time onStopCurrentWork is called, the class will first call AsyncTask.cancel(true) to interrupt the running task.

Parameters
boolean interruptIfStopped

Set to true to allow the system to interrupt actively running work.

Protected methods

onHandleWork

Added in 1.1.0
Deprecated in 1.6.0
protected abstract void onHandleWork(@NonNull Intent intent)

Called serially for each work dispatched to and processed by the service. This method is called on a background thread, so you can do long blocking operations here. Upon returning, that work will be considered complete and either the next pending work dispatched here or the overall service destroyed now that it has nothing else to do.

Be aware that when running as a job, you are limited by the maximum job execution time and any single or total sequential items of work that exceeds that limit will cause the service to be stopped while in progress and later restarted with the last unfinished work. (There is currently no limit on execution duration when running as a pre-O plain Service.)

Parameters
@NonNull Intent intent

The intent describing the work to now be processed.