JobScheduler 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
這是一個 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
- 繼承
- 屬性
備註
這是一個 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#M
android.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.JobScheduler
Java 檔。
此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。
建構函式
JobScheduler() | |
JobScheduler(IntPtr, JniHandleOwnership) |
建立 JNI 物件的 Managed 表示法時使用的建構函式;由運行時間呼叫。 |
欄位
屬性
AllPendingJobs | |
Class |
傳回這個 |
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() |
|
Clone() |
建立並傳回這個 對象的複本。 (繼承來源 Object) |
Dispose() |
這是一個 API,可用來針對將在應用程式本身進程中執行的架構排程各種類型的作業。 (繼承來源 Object) |
Dispose(Boolean) |
這是一個 API,可用來針對將在應用程式本身進程中執行的架構排程各種類型的作業。 (繼承來源 Object) |
Enqueue(JobInfo, JobWorkItem) |
類似於 |
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,可用來針對將在應用程式本身進程中執行的架構排程各種類型的作業。 |