JobScheduler Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
- 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 |
| ResultSuccess |
Se devuelve de |
Propiedades
| Nombre | Description |
|---|---|
| AllPendingJobs | |
| Class |
Devuelve la clase en tiempo de ejecución de este |
| 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 |
| 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 |
| 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 |
| GetPendingJobReasonsHistory(Int32) |
En el caso de , |
| 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 |
| JavaAs<TResult>(IJavaPeerable) |
Intente coerción |
| 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 |