JobScheduler Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
- 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.JobService
forem 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_CAKE
Android , 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#S
do Android, os trabalhos só podiam ter no máximo 100 trabalhos agendados por vez. A partir da versão android.os.Build.VERSION_CODES#S
do Android , esse limite foi aumentado para 150. Trabalhos acelerados também contam para o limite.
Na versão android.os.Build.VERSION_CODES#LOLLIPOP
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#R
do Android, os trabalhos tinham um tempo máximo de execução de 10 minutos. A partir da versão android.os.Build.VERSION_CODES#S
Android , 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 |
ResultSuccess |
Retornado de |
Propriedades
AllPendingJobs | |
Class |
Retorna a classe de tempo de execução deste |
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 |
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 |
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. |