JobScheduler Classe

Definição

Essa é uma API para agendar vários tipos de trabalhos na estrutura que serão executadas no próprio processo do aplicativo.

[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
Herança
JobScheduler
Atributos

Comentários

Essa é uma API para agendar vários tipos de trabalhos na estrutura que serão executadas no próprio processo do aplicativo.

Confira android.app.job.JobInfo mais descrição dos tipos de trabalhos que podem ser executados e como construí-los. Você construirá esses objetos JobInfo e os passará para o JobScheduler com #schedule(JobInfo). Quando os critérios declarados forem atendidos, o sistema executará esse trabalho no aplicativo.android.app.job.JobService Você identifica o componente de serviço que implementa a lógica do trabalho ao construir o JobInfo usando android.app.job.JobInfo.Builder#Builder(int,android.content.ComponentName).

A estrutura será inteligente quando executar trabalhos e tentar em lote e adiá-los o máximo possível. Normalmente, se você não especificar um prazo em um trabalho, ele poderá ser executado a qualquer momento, dependendo do estado atual da fila interna do JobScheduler.

A partir da versão android.os.Build.VERSION_CODES#UPSIDE_DOWN_CAKEdo Android, JobScheduler pode tentar otimizar a execução do trabalho mudando a execução para horários com mais recursos do sistema disponíveis para reduzir o impacto do usuário. Os fatores na integridade do sistema incluem bateria suficiente, ociosidade, carregamento e acesso a uma rede não limitada. Os trabalhos serão inicialmente tratados como se tivessem todos esses requisitos, mas à medida que seus prazos se aproximam, as restrições se tornarão menos rigorosas. Os requisitos solicitados não serão afetados por essa alteração.

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)

Enquanto um trabalho está em execução, o sistema mantém um wakelock em nome do seu aplicativo. Por esse motivo, você não precisa tomar nenhuma ação para garantir que o dispositivo permaneça acordado durante o trabalho.

Você não cria uma instância dessa classe diretamente; em vez disso, recupere-o por meio android.content.Context#getSystemService Context.getSystemService(Context.JOB_SCHEDULER_SERVICE)de .

Antes da versão android.os.Build.VERSION_CODES#Sdo Android, os trabalhos só podiam ter no máximo 100 trabalhos agendados por vez. A partir da versão android.os.Build.VERSION_CODES#Sdo Android, esse limite foi aumentado para 150. Trabalhos acelerados também contam para o limite.

Na versão android.os.Build.VERSION_CODES#LOLLIPOPdo Android, os trabalhos tinham um tempo máximo de execução de um minuto. Começando com a versão android.os.Build.VERSION_CODES#M do Android e terminando com a versão android.os.Build.VERSION_CODES#Rdo Android, os trabalhos tiveram um tempo máximo de execução de 10 minutos. A partir da versão android.os.Build.VERSION_CODES#Sdo Android, os trabalhos ainda serão interrompidos após 10 minutos se o sistema estiver ocupado ou precisar dos recursos, mas, caso contrário, os trabalhos poderão continuar em execução por mais de 10 minutos.

<Observação forte>:/forte< Começando com a API 30 (>), JobScheduler limitará os aplicativos descontroladosandroid.os.Build.VERSION_CODES#R. A chamada #schedule(JobInfo) e outros métodos com frequência muito alta podem ter um alto custo e, portanto, para garantir que o sistema não fique sobrecarregado, JobScheduler começará a limitar os aplicativos, independentemente da versão do SDK de destino.

Java documentação para android.app.job.JobScheduler.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

Construtores

Nome Description
JobScheduler()
JobScheduler(IntPtr, JniHandleOwnership)

Um construtor usado ao criar representações gerenciadas de objetos JNI; chamado pelo runtime.

Campos

Nome Description
PendingJobReasonApp
Obsoleto.

O aplicativo está em um estado que impede a execução do trabalho (por exemplo,

PendingJobReasonAppStandby
Obsoleto.

O bucket em espera atual impede que o trabalho seja executado.

PendingJobReasonBackgroundRestriction
Obsoleto.

O aplicativo é impedido de ser executado em segundo plano.

PendingJobReasonConstraintBatteryNotLow
Obsoleto.

A restrição não baixa da bateria solicitada não é atendida.

PendingJobReasonConstraintCharging
Obsoleto.

A restrição de carregamento solicitada não está satisfeita.

PendingJobReasonConstraintConnectivity
Obsoleto.

A restrição de conectividade solicitada não está satisfeita.

PendingJobReasonConstraintContentTrigger
Obsoleto.

A restrição de gatilho de conteúdo solicitada não está satisfeita.

PendingJobReasonConstraintDeadline
Obsoleto.

O prazo de substituição não ocorreu.

PendingJobReasonConstraintDeviceIdle
Obsoleto.

A restrição ociosa solicitada não está satisfeita.

PendingJobReasonConstraintMinimumLatency
Obsoleto.

A latência mínima não ocorreu.

PendingJobReasonConstraintPrefetch
Obsoleto.

A estimativa do sistema de quando o aplicativo será iniciado está longe o suficiente para justificar o adiamento desse trabalho.

PendingJobReasonConstraintStorageNotLow
Obsoleto.

A restrição de armazenamento não baixa solicitada não está satisfeita.

PendingJobReasonDeviceState
Obsoleto.

O trabalho está sendo adiado devido ao estado do dispositivo (por exemplo.

PendingJobReasonExecuting
Obsoleto.

O trabalho está em execução no momento e, portanto, não está pendente.

PendingJobReasonInvalidJobId
Obsoleto.

O trabalho não existe.

PendingJobReasonJobSchedulerOptimization
Obsoleto.

JobScheduler acha que pode adiar esse trabalho para um tempo de execução mais ideal.

PendingJobReasonQuota
Obsoleto.

O aplicativo consumiu toda a cota atual.

PendingJobReasonUndefined
Obsoleto.

Não há nenhuma razão conhecida pela qual o trabalho está pendente.

PendingJobReasonUser
Obsoleto.

JobScheduler está respeitando uma das ações do usuário (por exemplo,

ResultFailure

Retornado de #schedule(JobInfo) se um trabalho não foi agendado com êxito.

ResultSuccess

Retornado se #schedule(JobInfo) este trabalho tiver sido agendado com êxito.

Propriedades

Nome Description
AllPendingJobs
Class

Retorna a classe de runtime deste Object.

(Herdado de Object)
Handle

O identificador para a instância subjacente do Android.

(Herdado de Object)
JniIdentityHashCode

Obtém o código de hash de identidade atribuído a esse par Java pelo runtime de interoperabilidade.

(Herdado de Object)
JniManagedPeerState

Essa é uma API para agendar vários tipos de trabalhos na estrutura que serão executadas no próprio processo do aplicativo.

(Herdado de JavaObject)
JniPeerMembers

Essa é uma API para agendar vários tipos de trabalhos na estrutura que serão executadas no próprio processo do aplicativo.

Namespace

Obtenha o namespace no qual esta instância jobScheduler está operando.

PeerReference

Obtém a referência de objeto JNI para este par Java.

(Herdado de Object)
PendingJobsInAllNamespaces

Recupere todos os trabalhos que foram agendados pelo aplicativo de chamada no namespace atual.

ThresholdClass

Essa API dá suporte à infraestrutura do Mono para Android e não se destina a ser usada diretamente do seu código.

ThresholdType

Essa API dá suporte à infraestrutura do Mono para Android e não se destina a ser usada diretamente do seu código.

Métodos

Nome Description
Cancel(Int32)

Cancele o trabalho especificado.

CancelAll()

Cancele todos os trabalhos agendados no namespace atual pelo aplicativo de chamada.

CancelInAllNamespaces()

<Cancele >todos os< trabalhos> que foram agendados pelo aplicativo de chamada, independentemente do namespace.

CanRunUserInitiatedJobs()

Retorna true se o aplicativo de chamada atualmente detém a android.Manifest.permission#RUN_USER_INITIATED_JOBS permissão, permitindo que ele execute trabalhos iniciados pelo usuário.

Clone()

Cria e retorna uma cópia desse objeto.

(Herdado de Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

Essa é uma API para agendar vários tipos de trabalhos na estrutura que serão executadas no próprio processo do aplicativo.

(Herdado de JavaObject)
Dispose()

Libera os recursos mantidos por esse par Java.

(Herdado de Object)
Dispose(Boolean)

Libera os recursos mantidos por esse par Java.

(Herdado de Object)
DisposeUnlessReferenced()

Essa é uma API para agendar vários tipos de trabalhos na estrutura que serão executadas no próprio processo do aplicativo.

(Herdado de JavaObject)
Enqueue(JobInfo, JobWorkItem)

Semelhante a #schedule, mas permite que você enfileirar trabalho para um novo <trabalho em ou>existente</em> .

Equals(Object)

Essa é uma API para agendar vários tipos de trabalhos na estrutura que serão executadas no próprio processo do aplicativo.

(Herdado de JavaObject)
Equals(Object)

Indica se algum outro objeto é "igual a" este.

(Herdado de Object)
ForNamespace(String)

Obtenha uma instância jobScheduler dedicada a um namespace específico.

GetHashCode()

Retorna um valor de código hash para o objeto.

(Herdado de Object)
GetPendingJob(Int32)

Procure a descrição de um trabalho agendado.

GetPendingJobReason(Int32)

Retorna um motivo pelo qual o trabalho está pendente e não está em execução no momento.

GetPendingJobReasons(Int32)

Retorna possíveis motivos pelos quais o trabalho com o determinado jobId pode estar pendente e não está em execução no momento.

GetPendingJobReasonsHistory(Int32)

Para o determinado jobId, retorna uma visão histórica limitada do motivo pelo qual o trabalho pode estar pendente de execução.

JavaFinalize()

Chamado pelo coletor de lixo em um objeto quando a coleta de lixo determina que não há mais referências ao objeto.

(Herdado de Object)
Notify()

Ativa um único thread que está aguardando no monitor deste objeto.

(Herdado de Object)
NotifyAll()

Ativa todos os threads que estão aguardando no monitor deste objeto.

(Herdado de Object)
Schedule(JobInfo)

Agende um trabalho a ser executado.

SetHandle(IntPtr, JniHandleOwnership)

Define a propriedade Handle

(Herdado de Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Essa é uma API para agendar vários tipos de trabalhos na estrutura que serão executadas no próprio processo do aplicativo.

(Herdado de JavaObject)
ToArray<T>()

Cria uma matriz gerenciada com base nesse wrapper de matriz Java.

(Herdado de Object)
ToString()

Retorna uma representação de cadeia de caracteres do objeto.

(Herdado de Object)
UnregisterFromRuntime()

Cancela o registro desse par Java do runtime de interoperabilidade.

(Herdado de Object)
Wait()

Faz com que o thread atual aguarde até ser despertado, normalmente por ser <notificado/em> ou <em>interrompido</em>.<>

(Herdado de Object)
Wait(Int64, Int32)

Faz com que o thread atual aguarde até que ele seja despertado, normalmente por ser <>notificado</em> ou <em>interrompido</em>, ou até que uma determinada quantidade de tempo real tenha decorrido.

(Herdado de Object)
Wait(Int64)

Faz com que o thread atual aguarde até que ele seja despertado, normalmente por ser <>notificado</em> ou <em>interrompido</em>, ou até que uma determinada quantidade de tempo real tenha decorrido.

(Herdado de Object)

Implantações explícitas de interface

Nome Description
IJavaPeerable.Disposed()

Essa é uma API para agendar vários tipos de trabalhos na estrutura que serão executadas no próprio processo do aplicativo.

(Herdado de JavaObject)
IJavaPeerable.Finalized()

Essa é uma API para agendar vários tipos de trabalhos na estrutura que serão executadas no próprio processo do aplicativo.

(Herdado de JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

Essa é uma API para agendar vários tipos de trabalhos na estrutura que serão executadas no próprio processo do aplicativo.

(Herdado de JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Essa é uma API para agendar vários tipos de trabalhos na estrutura que serão executadas no próprio processo do aplicativo.

(Herdado de JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Essa é uma API para agendar vários tipos de trabalhos na estrutura que serão executadas no próprio processo do aplicativo.

(Herdado de JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

Essa é uma API para agendar vários tipos de trabalhos na estrutura que serão executadas no próprio processo do aplicativo.

(Herdado de JavaObject)

Métodos de Extensão

Nome Description
GetJniTypeName(IJavaPeerable)

Obtém o nome JNI do tipo da instância self.

JavaAs<TResult>(IJavaPeerable)

Tente coagir a digitar selfTResult, verificando se a coerção é válida no lado Java.

JavaCast<TResult>(IJavaObject)

Executa uma conversão de tipo marcada por runtime do Android.

JavaCast<TResult>(IJavaObject)

Essa é uma API para agendar vários tipos de trabalhos na estrutura que serão executadas no próprio processo do aplicativo.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Tente coagir a digitar selfTResult, verificando se a coerção é válida no lado Java.

Aplica-se a