JobScheduler Clase

Definición

Se trata de una API para programar varios tipos de trabajos en el marco que se ejecutará en el propio proceso de la aplicación.

[Android.Runtime.Register("android/app/job/JobScheduler", DoNotGenerateAcw=true)]
public abstract class JobScheduler : Java.Lang.Object
[<Android.Runtime.Register("android/app/job/JobScheduler", DoNotGenerateAcw=true)>]
type JobScheduler = class
    inherit Object
Herencia
JobScheduler
Atributos

Comentarios

Se trata de una API para programar varios tipos de trabajos en el marco que se ejecutará en el propio proceso de la aplicación.

Consulte android.app.job.JobInfo para obtener más descripción de los tipos de trabajos que se pueden ejecutar y cómo construirlos. Construirá estos objetos JobInfo y los pasará al jobScheduler con #schedule(JobInfo). Cuando se cumplen los criterios declarados, el sistema ejecutará este trabajo en la android.app.job.JobServiceaplicación. Identifique el componente de servicio que implementa la lógica del trabajo al construir JobInfo mediante android.app.job.JobInfo.Builder#Builder(int,android.content.ComponentName).

El marco de trabajo será inteligente cuando ejecute trabajos e intente procesar por lotes y aplazarlos tanto como sea posible. Normalmente, si no especifica una fecha límite en un trabajo, se puede ejecutar en cualquier momento en función del estado actual de la cola interna de JobScheduler.

A partir de la versión android.os.Build.VERSION_CODES#UPSIDE_DOWN_CAKEde Android, JobScheduler puede intentar optimizar la ejecución del trabajo cambiando la ejecución a tiempos con recursos del sistema más disponibles para reducir el impacto del usuario. Los factores en el estado del sistema incluyen suficiente batería, inactividad, carga y acceso a una red sin medición. Los trabajos se tratarán inicialmente como si tuvieran todos estos requisitos, pero a medida que su enfoque de fechas límite, las restricciones se volverán menos estrictas. Los requisitos solicitados no se verán afectados por este cambio.

android.app.job.JobInfo.Builder#setRequiresBatteryNotLow(boolean) android.app.job.JobInfo.Builder#setRequiresDeviceIdle(boolean) android.app.job.JobInfo.Builder#setRequiresCharging(boolean) android.app.job.JobInfo.Builder#setRequiredNetworkType(int)

Mientras se ejecuta un trabajo, el sistema contiene un wakelock en nombre de la aplicación. Por este motivo, no es necesario realizar ninguna acción para garantizar que el dispositivo permanezca activo durante el trabajo.

No crea instancias de esta clase directamente; en su lugar, recupere a través de android.content.Context#getSystemService Context.getSystemService(Context.JOB_SCHEDULER_SERVICE).

Antes de la versión android.os.Build.VERSION_CODES#Sde Android, los trabajos solo podían tener un máximo de 100 trabajos programados a la vez. A partir de la versión android.os.Build.VERSION_CODES#Sde Android, ese límite se ha aumentado a 150. Los trabajos acelerados también se cuentan hacia el límite.

En la versión android.os.Build.VERSION_CODES#LOLLIPOPde Android, los trabajos tenían un tiempo de ejecución máximo de un minuto. A partir de la versión android.os.Build.VERSION_CODES#M de Android y finalizar con la versión android.os.Build.VERSION_CODES#Rde Android, los trabajos tenían un tiempo de ejecución máximo de 10 minutos. A partir de la versión android.os.Build.VERSION_CODES#Sde Android, los trabajos se detendrán después de 10 minutos si el sistema está ocupado o necesita los recursos, pero, si no es así, los trabajos pueden seguir ejecutándose durante más de 10 minutos.

<strong>Note:</strong Beginning with API 30 (), JobScheduler will throttle runaway applications./strong> Beginning with API 30 (android.os.Build.VERSION_CODES#R), JobScheduler will throttle runaway applications. Llamar #schedule(JobInfo) a y otros métodos de este tipo con una frecuencia muy alta puede tener un alto costo, por lo que, para asegurarse de que el sistema no se sobrecarga, JobScheduler comenzará a limitar las aplicaciones, independientemente de la versión del SDK de destino.

Java documentación para android.app.job.JobScheduler.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

Constructores

Nombre Description
JobScheduler()
JobScheduler(IntPtr, JniHandleOwnership)

Constructor utilizado al crear representaciones administradas de objetos JNI; llamado por el tiempo de ejecución.

Campos

Nombre Description
PendingJobReasonApp
Obsoletos.

La aplicación está en un estado que impide que el trabajo se ejecute (por ejemplo,

PendingJobReasonAppStandby
Obsoletos.

El cubo en espera actual impide que el trabajo se ejecute.

PendingJobReasonBackgroundRestriction
Obsoletos.

La aplicación está restringida de ejecutarse en segundo plano.

PendingJobReasonConstraintBatteryNotLow
Obsoletos.

No se cumple la restricción solicitada que no es baja.

PendingJobReasonConstraintCharging
Obsoletos.

No se cumple la restricción de carga solicitada.

PendingJobReasonConstraintConnectivity
Obsoletos.

No se cumple la restricción de conectividad solicitada.

PendingJobReasonConstraintContentTrigger
Obsoletos.

No se cumple la restricción del desencadenador de contenido solicitado.

PendingJobReasonConstraintDeadline
Obsoletos.

La fecha límite de invalidación no ha transcurrido.

PendingJobReasonConstraintDeviceIdle
Obsoletos.

No se cumple la restricción de inactividad solicitada.

PendingJobReasonConstraintMinimumLatency
Obsoletos.

No ha transcurrido la latencia mínima.

PendingJobReasonConstraintPrefetch
Obsoletos.

La estimación del sistema de cuándo se iniciará la aplicación está lo suficientemente lejos como para garantizar el retraso de este trabajo.

PendingJobReasonConstraintStorageNotLow
Obsoletos.

No se cumple la restricción de almacenamiento solicitada no baja.

PendingJobReasonDeviceState
Obsoletos.

El trabajo se aplaza debido al estado del dispositivo (por ejemplo,

PendingJobReasonExecuting
Obsoletos.

El trabajo se está ejecutando actualmente y, por tanto, no está pendiente.

PendingJobReasonInvalidJobId
Obsoletos.

El trabajo no existe.

PendingJobReasonJobSchedulerOptimization
Obsoletos.

JobScheduler cree que puede aplazar este trabajo a un tiempo de ejecución más óptimo.

PendingJobReasonQuota
Obsoletos.

La aplicación ha consumido toda su cuota actual.

PendingJobReasonUndefined
Obsoletos.

No hay ninguna razón conocida por la que el trabajo está pendiente.

PendingJobReasonUser
Obsoletos.

JobScheduler respeta una de las acciones del usuario (por ejemplo,

ResultFailure

Se devuelve de #schedule(JobInfo) si un trabajo no se programó correctamente.

ResultSuccess

Se devuelve de #schedule(JobInfo) si este trabajo se ha programado correctamente.

Propiedades

Nombre Description
AllPendingJobs
Class

Devuelve la clase en tiempo de ejecución de este Objectobjeto .

(Heredado de Object)
Handle

Identificador de la instancia de Android subyacente.

(Heredado de Object)
JniIdentityHashCode

Obtiene el código hash de identidad asignado a este Java del mismo nivel por el tiempo de ejecución de interoperabilidad.

(Heredado de Object)
JniManagedPeerState

Se trata de una API para programar varios tipos de trabajos en el marco que se ejecutará en el propio proceso de la aplicación.

(Heredado de JavaObject)
JniPeerMembers

Se trata de una API para programar varios tipos de trabajos en el marco que se ejecutará en el propio proceso de la aplicación.

Namespace

Obtenga el espacio de nombres en el que funciona esta instancia de JobScheduler.

PeerReference

Obtiene la referencia de objeto JNI para este Java del mismo nivel.

(Heredado de Object)
PendingJobsInAllNamespaces

Recupere todos los trabajos programados por la aplicación que realiza la llamada en el espacio de nombres actual.

ThresholdClass

Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código.

ThresholdType

Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código.

Métodos

Nombre Description
Cancel(Int32)

Cancele el trabajo especificado.

CancelAll()

Cancele todos los trabajos programados en el espacio de nombres actual mediante la aplicación que realiza la llamada.

CancelInAllNamespaces()

Cancele <todos los> trabajos de em</em> programados por la aplicación que realiza la llamada, independientemente del espacio de nombres.

CanRunUserInitiatedJobs()

Devuelve true si la aplicación que realiza la llamada contiene actualmente el android.Manifest.permission#RUN_USER_INITIATED_JOBS permiso, lo que le permite ejecutar trabajos iniciados por el usuario.

Clone()

Crea y devuelve una copia de este objeto.

(Heredado de Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

Se trata de una API para programar varios tipos de trabajos en el marco que se ejecutará en el propio proceso de la aplicación.

(Heredado de JavaObject)
Dispose()

Libera los recursos mantenidos por este Java del mismo nivel.

(Heredado de Object)
Dispose(Boolean)

Libera los recursos mantenidos por este Java del mismo nivel.

(Heredado de Object)
DisposeUnlessReferenced()

Se trata de una API para programar varios tipos de trabajos en el marco que se ejecutará en el propio proceso de la aplicación.

(Heredado de JavaObject)
Enqueue(JobInfo, JobWorkItem)

De forma similar a #schedule, pero le permite poner en cola trabajo para un nuevo <trabajo em>o existente</em> .

Equals(Object)

Se trata de una API para programar varios tipos de trabajos en el marco que se ejecutará en el propio proceso de la aplicación.

(Heredado de JavaObject)
Equals(Object)

Indica si algún otro objeto es "igual a" este.

(Heredado de Object)
ForNamespace(String)

Obtenga una instancia de JobScheduler dedicada a un espacio de nombres específico.

GetHashCode()

Devuelve un valor de código hash para el objeto .

(Heredado de Object)
GetPendingJob(Int32)

Busque la descripción de un trabajo programado.

GetPendingJobReason(Int32)

Devuelve un motivo por el que el trabajo está pendiente y no se está ejecutando actualmente.

GetPendingJobReasons(Int32)

Devuelve posibles motivos por los que el trabajo con el especificado jobId puede estar pendiente y no se está ejecutando actualmente.

GetPendingJobReasonsHistory(Int32)

En el caso de , jobIddevuelve una vista histórica limitada de por qué el trabajo puede haber estado pendiente de ejecución.

JavaFinalize()

Lo llama el recolector de elementos no utilizados en un objeto cuando la recolección de elementos no utilizados determina que no hay más referencias al objeto .

(Heredado de Object)
Notify()

Activa un único subproceso que está esperando en el monitor de este objeto.

(Heredado de Object)
NotifyAll()

Activa todos los subprocesos que están esperando en el monitor de este objeto.

(Heredado de Object)
Schedule(JobInfo)

Programe un trabajo que se va a ejecutar.

SetHandle(IntPtr, JniHandleOwnership)

Establece la propiedad Handle.

(Heredado de Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Se trata de una API para programar varios tipos de trabajos en el marco que se ejecutará en el propio proceso de la aplicación.

(Heredado de JavaObject)
ToArray<T>()

Crea una matriz administrada a partir de este contenedor de matriz Java.

(Heredado de Object)
ToString()

Devuelve una representación de cadena del objeto .

(Heredado de Object)
UnregisterFromRuntime()

Anula el registro de este Java del mismo nivel del tiempo de ejecución de interoperabilidad.

(Heredado de Object)
Wait()

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser em notificado/em< o >em<interrumpido>/em<.><>

(Heredado de Object)
Wait(Int64, Int32)

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

(Heredado de Object)
Wait(Int64)

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

(Heredado de Object)

Implementaciones de interfaz explícitas

Nombre Description
IJavaPeerable.Disposed()

Se trata de una API para programar varios tipos de trabajos en el marco que se ejecutará en el propio proceso de la aplicación.

(Heredado de JavaObject)
IJavaPeerable.Finalized()

Se trata de una API para programar varios tipos de trabajos en el marco que se ejecutará en el propio proceso de la aplicación.

(Heredado de JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

Se trata de una API para programar varios tipos de trabajos en el marco que se ejecutará en el propio proceso de la aplicación.

(Heredado de JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Se trata de una API para programar varios tipos de trabajos en el marco que se ejecutará en el propio proceso de la aplicación.

(Heredado de JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Se trata de una API para programar varios tipos de trabajos en el marco que se ejecutará en el propio proceso de la aplicación.

(Heredado de JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

Se trata de una API para programar varios tipos de trabajos en el marco que se ejecutará en el propio proceso de la aplicación.

(Heredado de JavaObject)

Métodos de extensión

Nombre Description
GetJniTypeName(IJavaPeerable)

Obtiene el nombre JNI del tipo de la instancia self.

JavaAs<TResult>(IJavaPeerable)

Intente coerción self para escribir TResult, comprobando que la coerción es válida en el lado de Java.

JavaCast<TResult>(IJavaObject)

Realiza una conversión de tipos comprobados en tiempo de ejecución de Android.

JavaCast<TResult>(IJavaObject)

Se trata de una API para programar varios tipos de trabajos en el marco que se ejecutará en el propio proceso de la aplicación.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Intente coerción self para escribir TResult, comprobando que la coerción es válida en el lado de Java.

Se aplica a