共用方式為


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上執行此作業。 當您使用 android.app.job.JobInfo.Builder#Builder(int,android.content.ComponentName)建構 JobInfo 時,您可以識別實作作業邏輯的服務元件。

架構在執行作業時會很聰明,並嘗試盡可能批處理和延遲它們。 一般而言,如果您未在作業上指定期限,則隨時都可以根據JobScheduler內部佇列的目前狀態執行。

從 Android 版本 android.os.Build.VERSION_CODES#UPSIDE_DOWN_CAKE開始,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 版本 android.os.Build.VERSION_CODES#S之前,作業一次最多只能排程 100 個作業。 從 Android 版本 android.os.Build.VERSION_CODES#S開始,該限制已增加到 150。 加速作業也會計入限制。

在 Android 版本中 android.os.Build.VERSION_CODES#LOLLIPOP,作業的運行時間上限為 1 分鐘。 從 Android 版本開始,並以 Android 版本android.os.Build.VERSION_CODES#Mandroid.os.Build.VERSION_CODES#R結束,作業的運行時間上限為 10 分鐘。 從 Android 版本 android.os.Build.VERSION_CODES#S開始,如果系統忙碌或需要資源,作業仍會在 10 分鐘後停止,但如果不是,作業可能會繼續執行超過 10 分鐘。

<p class=“caution”><strong>Note:</strong> Start with API 30 (android.os.Build.VERSION_CODES#R), JobScheduler 會節流失控的應用程式。 不論目標 SDK 版本為何,呼叫 #schedule(JobInfo) 和其他頻率非常高的方法可能會有很高的成本,因此,為了確保系統不會不堪重負,JobScheduler 會開始節流應用程式。

android.app.job.JobSchedulerJava 檔。

此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。

建構函式

JobScheduler()
JobScheduler(IntPtr, JniHandleOwnership)

建立 JNI 物件的 Managed 表示法時使用的建構函式;由運行時間呼叫。

欄位

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 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。

ThresholdType

此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。

方法

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 <notified/em>或<em>interrupted</em> 來喚醒它。<>

(繼承來源 Object)
Wait(Int64, Int32)

讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。

(繼承來源 Object)
Wait(Int64)

讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</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,可用來針對將在應用程式本身進程中執行的架構排程各種類型的作業。

適用於