Compartilhar via


JobScheduler Classe

Definição

Esta é uma API para agendar vários tipos de trabalhos em relação à estrutura que será executada no próprio processo do seu 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

Esta é uma API para agendar vários tipos de trabalhos em relação à estrutura que será executada no próprio processo do seu aplicativo.

Consulte android.app.job.JobInfo para obter mais descrições 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 android.app.job.JobServiceforem atendidos, o sistema executará esse trabalho no arquivo . Você identifica o componente de serviço que implementa a lógica do seu trabalho ao construir o JobInfo usando android.app.job.JobInfo.Builder#Builder(int,android.content.ComponentName)o .

A estrutura será inteligente sobre quando executa trabalhos e tentará agrupá-los 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_CAKEAndroid , o JobScheduler pode tentar otimizar a execução do trabalho mudando a execução para horários com mais recursos disponíveis do sistema para reduzir o impacto do usuário. Os fatores na integridade do sistema incluem bateria suficiente, ociosidade, carregamento e acesso a uma rede ilimitada. Os empregos serão inicialmente tratados como se tivessem todos esses requisitos, mas à medida que seus prazos se aproximam, as restrições se tornarão menos rígidas. 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 ativo durante o trabalho.

Você não instancia essa classe diretamente; em vez disso, recupere-o através de android.content.Context#getSystemService Context.getSystemService(Context.JOB_SCHEDULER_SERVICE).

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#LOLLIPOPAndroid, 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 tinham um tempo máximo de execução de 10 minutos. A partir da versão android.os.Build.VERSION_CODES#SAndroid , os trabalhos ainda serão interrompidos após 10 minutos se o sistema estiver ocupado ou precisar de recursos, mas caso contrário, os trabalhos podem continuar sendo executados por mais de 10 minutos.

<p class="caution"><strong>Nota:</strong> A partir da API 30 (android.os.Build.VERSION_CODES#R), o JobScheduler limitará os aplicativos descontrolados. Chamadas #schedule(JobInfo) e outros métodos com frequência muito alta podem ter um custo alto e, portanto, para garantir que o sistema não fique sobrecarregado, o JobScheduler começará a limitar os aplicativos, independentemente da versão do SDK de destino.

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

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

Construtores

JobScheduler()
JobScheduler(IntPtr, JniHandleOwnership)

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

Campos

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 está impedido de ser executado em segundo plano.

PendingJobReasonConstraintBatteryNotLow
Obsoleto.

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

PendingJobReasonConstraintCharging
Obsoleto.

A restrição de carregamento solicitada não é satisfeita.

PendingJobReasonConstraintConnectivity
Obsoleto.

A restrição de conectividade solicitada não foi atendida.

PendingJobReasonConstraintContentTrigger
Obsoleto.

A restrição de gatilho de conteúdo solicitado não foi atendida.

PendingJobReasonConstraintDeviceIdle
Obsoleto.

A restrição ociosa solicitada não foi atendida.

PendingJobReasonConstraintMinimumLatency
Obsoleto.

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

PendingJobReasonConstraintPrefetch
Obsoleto.

A estimativa do sistema de quando o aplicativo será lançado está longe o suficiente para justificar o atraso desse trabalho.

PendingJobReasonConstraintStorageNotLow
Obsoleto.

A restrição de armazenamento não baixo solicitada não é atendida.

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.

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

PendingJobReasonQuota
Obsoleto.

O aplicativo consumiu toda a sua cota atual.

PendingJobReasonUndefined
Obsoleto.

Não há razão conhecida para que o trabalho esteja 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 de #schedule(JobInfo) se este trabalho tiver sido agendado com êxito.

Propriedades

AllPendingJobs
Class

Retorna a classe de tempo de execução deste Object.

(Herdado de Object)
Handle

O identificador para a instância subjacente do Android.

(Herdado de Object)
JniIdentityHashCode

Esta é uma API para agendar vários tipos de trabalhos em relação à estrutura que será executada no próprio processo do seu aplicativo.

(Herdado de Object)
JniPeerMembers

Esta é uma API para agendar vários tipos de trabalhos em relação à estrutura que será executada no próprio processo do seu aplicativo.

Namespace

Obtenha o namespace em que essa instância do JobScheduler está operando.

PeerReference

Esta é uma API para agendar vários tipos de trabalhos em relação à estrutura que será executada no próprio processo do seu aplicativo.

(Herdado de Object)
PendingJobsInAllNamespaces

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

ThresholdClass

Essa API é compatível com a infraestrutura Mono para Android e não se destina a ser usada diretamente do seu código.

ThresholdType

Essa API é compatível com a infraestrutura Mono para Android e não se destina a ser usada diretamente do seu código.

Métodos

Cancel(Int32)

Cancele o trabalho especificado.

CancelAll()

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

CancelInAllNamespaces()

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

CanRunUserInitiatedJobs()

Retorna true se o aplicativo de chamada atualmente tiver 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)
Dispose()

Esta é uma API para agendar vários tipos de trabalhos em relação à estrutura que será executada no próprio processo do seu aplicativo.

(Herdado de Object)
Dispose(Boolean)

Esta é uma API para agendar vários tipos de trabalhos em relação à estrutura que será executada no próprio processo do seu aplicativo.

(Herdado de Object)
Enqueue(JobInfo, JobWorkItem)

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

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.

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 desse 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)
ToArray<T>()

Esta é uma API para agendar vários tipos de trabalhos em relação à estrutura que será executada no próprio processo do seu aplicativo.

(Herdado de Object)
ToString()

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

(Herdado de Object)
UnregisterFromRuntime()

Esta é uma API para agendar vários tipos de trabalhos em relação à estrutura que será executada no próprio processo do seu aplicativo.

(Herdado de Object)
Wait()

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

(Herdado de Object)
Wait(Int64, Int32)

Faz com que o thread atual aguarde até que seja ativado, normalmente sendo <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 seja ativado, normalmente sendo <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

IJavaPeerable.Disposed()

Esta é uma API para agendar vários tipos de trabalhos em relação à estrutura que será executada no próprio processo do seu aplicativo.

(Herdado de Object)
IJavaPeerable.DisposeUnlessReferenced()

Esta é uma API para agendar vários tipos de trabalhos em relação à estrutura que será executada no próprio processo do seu aplicativo.

(Herdado de Object)
IJavaPeerable.Finalized()

Esta é uma API para agendar vários tipos de trabalhos em relação à estrutura que será executada no próprio processo do seu aplicativo.

(Herdado de Object)
IJavaPeerable.JniManagedPeerState

Esta é uma API para agendar vários tipos de trabalhos em relação à estrutura que será executada no próprio processo do seu aplicativo.

(Herdado de Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Esta é uma API para agendar vários tipos de trabalhos em relação à estrutura que será executada no próprio processo do seu aplicativo.

(Herdado de Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Esta é uma API para agendar vários tipos de trabalhos em relação à estrutura que será executada no próprio processo do seu aplicativo.

(Herdado de Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Esta é uma API para agendar vários tipos de trabalhos em relação à estrutura que será executada no próprio processo do seu aplicativo.

(Herdado de Object)

Métodos de Extensão

JavaCast<TResult>(IJavaObject)

Executa uma conversão de tipo verificada pelo tempo de execução do Android.

JavaCast<TResult>(IJavaObject)

Esta é uma API para agendar vários tipos de trabalhos em relação à estrutura que será executada no próprio processo do seu aplicativo.

GetJniTypeName(IJavaPeerable)

Esta é uma API para agendar vários tipos de trabalhos em relação à estrutura que será executada no próprio processo do seu aplicativo.

Aplica-se a