Поделиться через


JobScheduler Класс

Определение

Это API для планирования различных типов заданий на платформе, которая будет выполняться в собственном процессе приложения.

[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
Наследование
JobScheduler
Атрибуты

Комментарии

Это API для планирования различных типов заданий на платформе, которая будет выполняться в собственном процессе приложения.

Дополнительные android.app.job.JobInfo сведения о типах заданий, которые могут выполняться и как создавать их. Эти объекты JobInfo будут создаваться и передавать их в JobScheduler.#schedule(JobInfo) Когда объявленные условия выполняются, система выполнит это задание в приложении android.app.job.JobService. Вы определяете компонент службы, реализующий логику задания при создании JobInfo с помощью android.app.job.JobInfo.Builder#Builder(int,android.content.ComponentName).

Платформа будет интеллектуальной при выполнении заданий и пытается пакетировать и отложить их как можно больше. Как правило, если не указать крайний срок для задания, он может выполняться в любой момент в зависимости от текущего состояния внутренней очереди JobScheduler.

Начиная с версии android.os.Build.VERSION_CODES#UPSIDE_DOWN_CAKEAndroid JobScheduler может попытаться оптимизировать выполнение задания, переместив выполнение в время с более доступными системными ресурсами, чтобы снизить влияние пользователя. Факторы в работоспособности системы включают достаточно батареи, простоя, зарядки и доступа к неуправляемой сети. Задания изначально будут рассматриваться как если бы они имеют все эти требования, но по мере их крайних сроков ограничения становятся менее строгими. Запрошенные требования не будут затронуты этим изменением.

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)

Во время выполнения задания система хранит пробуждение от имени приложения. По этой причине вам не нужно предпринимать никаких действий, чтобы гарантировать, что устройство остается в состоянии пробуждения в течение длительности задания.

Вы не создаете экземпляр этого класса напрямую; вместо этого получите его через android.content.Context#getSystemService Context.getSystemService(Context.JOB_SCHEDULER_SERVICE).

До версии android.os.Build.VERSION_CODES#SAndroid задания могут иметь не более 100 заданий, запланированных за раз. Начиная с версии android.os.Build.VERSION_CODES#SAndroid, это ограничение увеличилось до 150. Ускоренная работа также учитывается в сторону предела.

В версии android.os.Build.VERSION_CODES#LOLLIPOPAndroid задания имели максимальное время выполнения в течение одной минуты. Начиная с версии Android и заканчивая версией android.os.Build.VERSION_CODES#M android.os.Build.VERSION_CODES#RAndroid, задания имели максимальное время выполнения в 10 минут. Начиная с версии android.os.Build.VERSION_CODES#SAndroid задания по-прежнему будут остановлены через 10 минут, если система занята или нуждается в ресурсах, но если нет, задания могут продолжать работать дольше 10 минут.

<p class="warning"><strong>Note:</strong> , начиная с API 30 (android.os.Build.VERSION_CODES#R), JobScheduler будет регулировать запускаемые приложения. Вызовы #schedule(JobInfo) и другие такие методы с очень высокой частотой могут иметь высокую стоимость и поэтому, чтобы убедиться, что система не перегружена, JobScheduler начнет регулировать приложения независимо от целевой версии пакета SDK.

Документация по Java для android.app.job.JobScheduler.

Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.

Конструкторы

JobScheduler()
JobScheduler(IntPtr, JniHandleOwnership)

Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения.

Поля

PendingJobReasonApp
Устаревшие..

Приложение находится в состоянии, которое предотвращает выполнение задания (например,

PendingJobReasonAppStandby
Устаревшие..

Текущий резервный контейнер предотвращает выполнение задания.

PendingJobReasonBackgroundRestriction
Устаревшие..

Приложение ограничено выполнением в фоновом режиме.

PendingJobReasonConstraintBatteryNotLow
Устаревшие..

Запрошенное ограничение на заряд батареи не соответствует требованиям.

PendingJobReasonConstraintCharging
Устаревшие..

Запрошенное ограничение зарядки не удовлетворено.

PendingJobReasonConstraintConnectivity
Устаревшие..

Запрошенное ограничение подключения не удовлетворено.

PendingJobReasonConstraintContentTrigger
Устаревшие..

Запрошенное ограничение триггера содержимого не удовлетворено.

PendingJobReasonConstraintDeviceIdle
Устаревшие..

Запрошенное ограничение простоя не удовлетворяется.

PendingJobReasonConstraintMinimumLatency
Устаревшие..

Минимальная задержка не произошла.

PendingJobReasonConstraintPrefetch
Устаревшие..

Оценка системы о том, когда приложение будет запущено, достаточно далеко, чтобы гарантировать задержку этого задания.

PendingJobReasonConstraintStorageNotLow
Устаревшие..

Запрошенное ограничение хранилища не является низким.

PendingJobReasonDeviceState
Устаревшие..

Задание отложено из-за состояния устройства (например.

PendingJobReasonExecuting
Устаревшие..

В настоящее время задание выполняется и поэтому не ожидается.

PendingJobReasonInvalidJobId
Устаревшие..

Задание не существует.

PendingJobReasonJobSchedulerOptimization
Устаревшие..

JobScheduler считает, что это может отложить это задание до более оптимального времени выполнения.

PendingJobReasonQuota
Устаревшие..

Приложение использовало всю текущую квоту.

PendingJobReasonUndefined
Устаревшие..

Нет известной причины, по которой задание ожидается.

PendingJobReasonUser
Устаревшие..

JobScheduler уважает одно из действий пользователя (например,

ResultFailure

Возвращается, #schedule(JobInfo) если задание не было запланировано успешно.

ResultSuccess

Возвращается, #schedule(JobInfo) если это задание успешно запланировано.

Свойства

AllPendingJobs
Class

Возвращает класс среды выполнения этого Objectобъекта.

(Унаследовано от Object)
Handle

Дескриптор базового экземпляра Android.

(Унаследовано от Object)
JniIdentityHashCode

Это API для планирования различных типов заданий на платформе, которая будет выполняться в собственном процессе приложения.

(Унаследовано от Object)
JniPeerMembers

Это API для планирования различных типов заданий на платформе, которая будет выполняться в собственном процессе приложения.

Namespace

Получите пространство имен, в который работает экземпляр JobScheduler.

PeerReference

Это API для планирования различных типов заданий на платформе, которая будет выполняться в собственном процессе приложения.

(Унаследовано от Object)
PendingJobsInAllNamespaces

Извлеките все задания, запланированные вызывающим приложением в текущем пространстве имен.

ThresholdClass

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

ThresholdType

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

Методы

Cancel(Int32)

Отмена указанного задания.

CancelAll()

Отмените все задания, запланированные в текущем пространстве имен вызывающим приложением.

CancelInAllNamespaces()

Отмена <всех< или em> заданий, запланированных вызывающим приложением, независимо>от пространства имен.

CanRunUserInitiatedJobs()

Возвращает, true если вызывающее приложение в настоящее время содержит android.Manifest.permission#RUN_USER_INITIATED_JOBS разрешение, позволяя ему выполнять задания, инициированные пользователем.

Clone()

Создает и возвращает копию этого объекта.

(Унаследовано от Object)
Dispose()

Это API для планирования различных типов заданий на платформе, которая будет выполняться в собственном процессе приложения.

(Унаследовано от Object)
Dispose(Boolean)

Это API для планирования различных типов заданий на платформе, которая будет выполняться в собственном процессе приложения.

(Унаследовано от Object)
Enqueue(JobInfo, JobWorkItem)

#scheduleАналогично , но позволяет зарезежировать работу для нового <задания em>или existing</em>.

Equals(Object)

Указывает, равен ли другой объект этому объекту.

(Унаследовано от Object)
ForNamespace(String)

Получите экземпляр JobScheduler, выделенный для определенного пространства имен.

GetHashCode()

Возвращает значение хэш-кода для объекта.

(Унаследовано от Object)
GetPendingJob(Int32)

Просмотрите описание запланированного задания.

GetPendingJobReason(Int32)

Возвращает причину, по которой задание ожидается и не выполняется в данный момент.

JavaFinalize()

Вызывается сборщиком мусора в объекте, когда сборка мусора определяет, что больше ссылок на объект нет.

(Унаследовано от Object)
Notify()

Пробуждение одного потока, ожидающего монитора этого объекта.

(Унаследовано от Object)
NotifyAll()

Просыпает все потоки, ожидающие монитора этого объекта.

(Унаследовано от Object)
Schedule(JobInfo)

Планирование выполнения задания.

SetHandle(IntPtr, JniHandleOwnership)

Задает свойство Handle.

(Унаследовано от Object)
ToArray<T>()

Это API для планирования различных типов заданий на платформе, которая будет выполняться в собственном процессе приложения.

(Унаследовано от Object)
ToString()

Возвращает строковое представление объекта.

(Унаследовано от Object)
UnregisterFromRuntime()

Это API для планирования различных типов заданий на платформе, которая будет выполняться в собственном процессе приложения.

(Унаследовано от Object)
Wait()

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>помощи уведомления</em> или <эм>прерванного</em>.

(Унаследовано от Object)
Wait(Int64, Int32)

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прервано< или> до тех пор, пока не истекло определенное количество реального времени.

(Унаследовано от Object)
Wait(Int64)

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прервано< или> до тех пор, пока не истекло определенное количество реального времени.

(Унаследовано от Object)

Явные реализации интерфейса

IJavaPeerable.Disposed()

Это API для планирования различных типов заданий на платформе, которая будет выполняться в собственном процессе приложения.

(Унаследовано от Object)
IJavaPeerable.DisposeUnlessReferenced()

Это API для планирования различных типов заданий на платформе, которая будет выполняться в собственном процессе приложения.

(Унаследовано от Object)
IJavaPeerable.Finalized()

Это API для планирования различных типов заданий на платформе, которая будет выполняться в собственном процессе приложения.

(Унаследовано от Object)
IJavaPeerable.JniManagedPeerState

Это API для планирования различных типов заданий на платформе, которая будет выполняться в собственном процессе приложения.

(Унаследовано от Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Это API для планирования различных типов заданий на платформе, которая будет выполняться в собственном процессе приложения.

(Унаследовано от Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Это API для планирования различных типов заданий на платформе, которая будет выполняться в собственном процессе приложения.

(Унаследовано от Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Это API для планирования различных типов заданий на платформе, которая будет выполняться в собственном процессе приложения.

(Унаследовано от Object)

Методы расширения

JavaCast<TResult>(IJavaObject)

Выполняет преобразование типа, проверяемого средой выполнения Android.

JavaCast<TResult>(IJavaObject)

Это API для планирования различных типов заданий на платформе, которая будет выполняться в собственном процессе приложения.

GetJniTypeName(IJavaPeerable)

Это API для планирования различных типов заданий на платформе, которая будет выполняться в собственном процессе приложения.

Применяется к