Share via


IWatchKey 介面

定義

標記,表示使用 WatchService 註冊 Watchable watchable 物件。

[Android.Runtime.Register("java/nio/file/WatchKey", "", "Java.Nio.FileNio.IWatchKeyInvoker", ApiSince=26)]
public interface IWatchKey : Android.Runtime.IJavaObject, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("java/nio/file/WatchKey", "", "Java.Nio.FileNio.IWatchKeyInvoker", ApiSince=26)>]
type IWatchKey = interface
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
屬性
實作

備註

標記,表示使用 WatchService 註冊 Watchable watchable 物件。

當可監看式物件向watch服務註冊時,就會建立watch金鑰。 金鑰會保留 #isValid valid 到: < ol >< li > 它已取消,明確叫用其 #cancel cancel 方法,或 < /li li > 以隱含方式取消,因為無法再存取物件,或 < /li ><<> li > 由 WatchService#close closing watch服務存取。 </li >< /ol>

watch金鑰的狀態。 最初建立時,金鑰會稱為 < em > ready < /em > 。 偵測到事件時,金鑰會 < 發出訊 > 號 < /em > 並排入佇列,以便叫用watch服務的 WatchService#poll() pollWatchService#take() take 方法來擷取它。 發出訊號之後,金鑰會維持在這個狀態,直到叫用其 #reset reset 方法以將金鑰傳回就緒狀態為止。 當金鑰處於訊號狀態時偵測到的事件已排入佇列,但不會讓金鑰重新排入佇列,以便從watch服務擷取。 叫用索引鍵的 #pollEvents pollEvents 方法會擷取事件。 這個方法會擷取並移除針對 物件累積的所有事件。 一開始建立時,watch索引鍵沒有擱置的事件。 當索引鍵處於指示狀態導致下列慣用語時,通常會擷取事件:

for (;;) {
                    // retrieve key
                    WatchKey key = watcher.take();

                    // process events
                    for (WatchEvent&lt;?&gt; event: key.pollEvents()) {
                        :
                    }

                    // reset the key
                    boolean valid = key.reset();
                    if (!valid) {
                        // object no longer registered
                    }
                }

監看式金鑰可供多個平行線程使用。 如果有數個執行緒從watch服務擷取訊號的索引鍵,則應該小心確保 reset 只有在處理物件的事件之後才會叫用 方法。 這可確保一個執行緒隨時處理物件的事件。

已在 1.7 中新增。

java.nio.file.WatchKey JAVA 檔。

此頁面的部分是根據所建立和共用的工作進行修改,並根據 2.5 屬性授權中所述的詞彙來使用。

屬性

Handle

取得基礎 Android 物件的 JNI 值。

(繼承來源 IJavaObject)
IsValid

標記,表示使用 WatchService 註冊 Watchable watchable 物件。

JniIdentityHashCode

傳回已包裝實例的 值 java.lang.System.identityHashCode()

(繼承來源 IJavaPeerable)
JniManagedPeerState

Managed 對等的狀態。

(繼承來源 IJavaPeerable)
JniPeerMembers

成員存取和調用支援。

(繼承來源 IJavaPeerable)
PeerReference

JniObjectReference 回已包裝 JAVA 物件實例的 。

(繼承來源 IJavaPeerable)

方法

Cancel()

取消watch服務的註冊。

Disposed()

處置實例時呼叫。

(繼承來源 IJavaPeerable)
DisposeUnlessReferenced()

如果這個實例沒有未完成的參考,則呼叫 Dispose() ,否則不會執行任何動作。

(繼承來源 IJavaPeerable)
Finalized()

實例完成時呼叫。

(繼承來源 IJavaPeerable)
PollEvents()

擷取並移除這個watch索引鍵的所有擱置事件,並 List 傳回已擷取之事件的 。

Reset()

重設此watch鍵。

SetJniIdentityHashCode(Int32)

設定 所 JniIdentityHashCode 傳回的值。

(繼承來源 IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

標記,表示使用 WatchService 註冊 Watchable watchable 物件。

(繼承來源 IJavaPeerable)
SetPeerReference(JniObjectReference)

設定 所 PeerReference 傳回的值。

(繼承來源 IJavaPeerable)
UnregisterFromRuntime()

取消註冊這個實例,讓執行時間不會從未來的 Java.Interop.JniRuntime+JniValueManager.PeekValue 調用傳回它。

(繼承來源 IJavaPeerable)
Watchable()

傳回建立這個watch索引鍵的物件。

擴充方法

JavaCast<TResult>(IJavaObject)

執行 Android 執行時間檢查的類型轉換。

JavaCast<TResult>(IJavaObject)

標記,表示使用 WatchService 註冊 Watchable watchable 物件。

GetJniTypeName(IJavaPeerable)

標記,表示使用 WatchService 註冊 Watchable watchable 物件。

適用於