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.
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
- 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 |
| ResultSuccess |
Retornado se |
Propriedades
| Nome | Description |
|---|---|
| AllPendingJobs | |
| Class |
Retorna a classe de runtime deste |
| 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 |
| 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 |
| 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 |
| GetPendingJobReasonsHistory(Int32) |
Para o determinado |
| 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 |
| JavaAs<TResult>(IJavaPeerable) |
Tente coagir a digitar |
| 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 |