語言

IScheduledExecutorService 介面

定義

一個 ExecutorService 可以排程指令在特定延遲後執行,或定期執行的指令。

[Android.Runtime.Register("java/util/concurrent/ScheduledExecutorService", "", "Java.Util.Concurrent.IScheduledExecutorServiceInvoker")]
public interface IScheduledExecutorService : IDisposable, Java.Interop.IJavaPeerable, Java.Util.Concurrent.IExecutorService
[<Android.Runtime.Register("java/util/concurrent/ScheduledExecutorService", "", "Java.Util.Concurrent.IScheduledExecutorServiceInvoker")>]
type IScheduledExecutorService = interface
    interface IExecutorService
    interface IExecutor
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
衍生
屬性
實作

備註

一個 ExecutorService 可以排程指令在特定延遲後執行,或定期執行的指令。

這些 schedule 方法會產生具有不同延遲的任務,並回傳一個任務物件,可用來取消或檢查執行。 scheduleAtFixedRate和 scheduleWithFixedDelay 方法會建立並執行任務,這些任務會定期執行直到被取消。

使用 and Executor#execute(Runnable)ExecutorServicesubmit 方法提交的指令會以請求延遲為零的排程。 方法中也允許 schedule 零延遲與負延遲(但不允許週期),並視為立即執行的請求。

所有schedule方法都接受<>相對</延遲>與週期作為論證,而非絕對時間或日期。 將以 java.util.Date 表示的絕對時間轉換為所需形式是簡單的事。 例如,要在某個未來 date排程,你可以使用: schedule(task, date.getTime() - System.currentTimeMillis(), TimeUnit.MILLISECONDS)。 但請注意,相對延遲的到期時間不必與任務啟用的電流 Date 重合,這是網路時間同步協定、時鐘漂移或其他因素所致。

這個 Executors 類別為本套件中提供的 ScheduledExecutorService 實作提供了方便的工廠方法。

<h2>使用範例</h2>

這裡有一個類別,裡面有一個方法可以設定一個 ScheduledExecutorService,每十秒發出嗶嗶聲,持續一小時:

{@code
            import static java.util.concurrent.TimeUnit.*;
            class BeeperControl {
              private final ScheduledExecutorService scheduler =
                Executors.newScheduledThreadPool(1);

              public void beepForAnHour() {
                Runnable beeper = () -> System.out.println("beep");
                ScheduledFuture<?> beeperHandle =
                  scheduler.scheduleAtFixedRate(beeper, 10, 10, SECONDS);
                Runnable canceller = () -> beeperHandle.cancel(false);
                scheduler.schedule(canceller, 1, HOURS);
              }
            }}

已在1.5中新增。

Java 文件 java.util.concurrent.ScheduledExecutorService。

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

屬性

名稱 Description
Handle

取得底層 Android 物件的 JNI 值。

(繼承來源 IJavaObject)
IsShutdown

如果該執行人已被關閉,則會退貨 true 。

(繼承來源 IExecutorService)
IsTerminated

關閉後所有任務都完成後,會回傳 true 。

(繼承來源 IExecutorService)
JniIdentityHashCode

回傳包裹實例的 java.lang.System.identityHashCode() 值。

(繼承來源 IJavaPeerable)
JniManagedPeerState

管理貴族的狀況。

(繼承來源 IJavaPeerable)
JniObjectReferenceControlBlock

一個 ExecutorService 可以排程指令在特定延遲後執行,或定期執行的指令。

(繼承來源 IJavaPeerable)
JniPeerMembers

成員存取與召喚支援。

(繼承來源 IJavaPeerable)
PeerReference

回傳JniObjectReference包裹後的 Java 物件實例。

(繼承來源 IJavaPeerable)

方法

名稱 Description
AwaitTermination(Int64, TimeUnit)

在關閉請求後所有任務完成執行、逾時發生或當前執行緒中斷(以先發生者為準)為止。

(繼承來源 IExecutorService)
Close()

啟動有序關機,執行先前提交的任務,但不再接受新的任務。

(繼承來源 IExecutorService)
Disposed()

當實例被處理後才被召喚。

(繼承來源 IJavaPeerable)
DisposeUnlessReferenced()

如果沒有未解決的參考資料,則 Dispose()呼叫;否則,則不做任何事。

(繼承來源 IJavaPeerable)
Execute(IRunnable)

在未來某個時間執行給定指令。

(繼承來源 IExecutor)
Finalized()

當實例完成後才會被通知。

(繼承來源 IJavaPeerable)
InvokeAll(ICollection, Int64, TimeUnit)

執行指定任務,並在所有任務完成或超時結束時(以先發生者為準)返回一份保存狀態與結果的未來清單。

(繼承來源 IExecutorService)
InvokeAll(ICollection)

執行指定任務,完成後回傳一份包含狀態與結果的未來清單。

(繼承來源 IExecutorService)
InvokeAny(ICollection, Int64, TimeUnit)

執行給定任務,並回傳成功完成的任務結果(i.

(繼承來源 IExecutorService)
InvokeAny(ICollection)

執行給定任務,並回傳成功完成的任務結果(i.

(繼承來源 IExecutorService)
Schedule(ICallable, Int64, TimeUnit)

提交一個能回傳價值的一次性任務,該任務在指定延遲後啟用。

Schedule(IRunnable, Int64, TimeUnit)

提交一個一次性任務,該任務在指定延遲後啟用。

ScheduleAtFixedRate(IRunnable, Int64, Int64, TimeUnit)

提交一個週期性行動,該動作在給定的初始延遲後先啟用,隨後在指定期間內生效;也就是說,執行會在 initialDelay之後開始,接著 initialDelay + period,然後 initialDelay + 2 * period,依此類推。

ScheduleWithFixedDelay(IRunnable, Int64, Int64, TimeUnit)

提交一個週期性行動,該動作在給定的初始延遲後先被啟用,隨後在一次執行終止與下一次執行開始之間的指定延遲中啟用。

SetJniIdentityHashCode(Int32)

將回傳的值設為 JniIdentityHashCode。

(繼承來源 IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

一個 ExecutorService 可以排程指令在特定延遲後執行,或定期執行的指令。

(繼承來源 IJavaPeerable)
SetPeerReference(JniObjectReference)

將回傳的值設為 PeerReference。

(繼承來源 IJavaPeerable)
Shutdown()

啟動有序關機,執行先前提交的任務,但不再接受新的任務。

(繼承來源 IExecutorService)
ShutdownNow()

嘗試停止所有正在執行的任務,停止等待任務的處理,並回傳等待執行的任務清單。

(繼承來源 IExecutorService)
Submit(ICallable)

提交一個值回傳任務以供執行,並回傳一個代表該任務待處理結果的未來。

(繼承來源 IExecutorService)
Submit(IRunnable, Object)

提交一個可執行的任務,並回傳代表該任務的 Future。

(繼承來源 IExecutorService)
Submit(IRunnable)

提交一個可執行的任務,並回傳代表該任務的 Future。

(繼承來源 IExecutorService)
UnregisterFromRuntime()

取消註冊此實例,讓執行時不會在未來 Java.Interop.JniRuntime+JniValueManager.PeekValue 的呼叫中回傳該實例。

(繼承來源 IJavaPeerable)

擴充方法

名稱 Description
AwaitTerminationAsync(IExecutorService, Int64, TimeUnit)

一個 ExecutorService 可以排程指令在特定延遲後執行,或定期執行的指令。

GetJniTypeName(IJavaPeerable)

取得實例 self類型的 JNI 名稱。

InvokeAnyAsync(IExecutorService, ICollection, Int64, TimeUnit)

一個 ExecutorService 可以排程指令在特定延遲後執行,或定期執行的指令。

InvokeAnyAsync(IExecutorService, ICollection)

一個 ExecutorService 可以排程指令在特定延遲後執行,或定期執行的指令。

JavaAs<TResult>(IJavaPeerable)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

JavaCast<TResult>(IJavaObject)

執行 Android 執行時檢查型別轉換。

JavaCast<TResult>(IJavaObject)

一個 ExecutorService 可以排程指令在特定延遲後執行,或定期執行的指令。

TryJavaCast<TResult>(IJavaPeerable, TResult)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

適用於