語言

IWatchKey 介面

定義

一個代表物件註冊Watchable watchable的標記。WatchService

[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
屬性
實作

備註

一個代表物件註冊Watchable watchable的標記。WatchService

當可觀看物件在手錶服務註冊時,會產生一個手錶金鑰。 金鑰會持續#isValid valid到:<ol><li> 它被明確地透過調用其#cancel cancel方法來取消,或</li><li 隱>式取消,因為物件已無法存取,或 </li><li> 由WatchService#close closing手錶服務。 </li></ol>

手錶金鑰有狀態。 當金鑰最初建立時,稱為 <em>ready</em>。 當偵測到事件時,該金鑰會被 <em>signalled</em> 並排隊,以便透過呼叫監控服務 WatchService#poll() poll 或 WatchService#take() take 方法來檢索。 一旦收到訊號,金鑰會保持此狀態,直到 #reset reset 其方法被呼叫以將金鑰恢復到準備狀態。 在金鑰處於訊號狀態時偵測到的事件會被排隊,但不會讓金鑰重新排隊以便從監視服務中取回。 事件可透過調用金鑰的方法 #pollEvents pollEvents 取得。 此方法會檢索並移除所有累積的事件。 在最初建立時,手錶金鑰沒有待處理的事件。 通常當金鑰處於訊號狀態時會擷取事件,導致以下用語:

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
                    }
                }

手錶鍵對多個並行執行緒使用是安全的。 若有多個執行緒從監視服務取得訊號金鑰,則應 reset 注意確保該方法僅在物件事件處理完畢後才被呼叫。 這確保了同一執行緒在任何時候都在處理物件的事件。

在 1.7 版本中加入。

Java 文件 java.nio.file.WatchKey。

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

屬性

名稱 Description
Handle

取得底層 Android 物件的 JNI 值。

(繼承來源 IJavaObject)
IsValid

判斷這把手錶鑰匙是否有效。

JniIdentityHashCode

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

(繼承來源 IJavaPeerable)
JniManagedPeerState

管理貴族的狀況。

(繼承來源 IJavaPeerable)
JniObjectReferenceControlBlock

一個代表物件註冊Watchable watchable的標記。WatchService

(繼承來源 IJavaPeerable)
JniPeerMembers

成員存取與召喚支援。

(繼承來源 IJavaPeerable)
PeerReference

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

(繼承來源 IJavaPeerable)

方法

名稱 Description
Cancel()

取消了手錶服務的註冊。

Disposed()

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

(繼承來源 IJavaPeerable)
DisposeUnlessReferenced()

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

(繼承來源 IJavaPeerable)
Finalized()

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

(繼承來源 IJavaPeerable)
PollEvents()

取回並移除所有待處理的此手錶金鑰事件,回傳 List 取出已取回的事件。

Reset()

重置這個手錶鑰匙。

SetJniIdentityHashCode(Int32)

將回傳的值設為 JniIdentityHashCode。

(繼承來源 IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

一個代表物件註冊Watchable watchable的標記。WatchService

(繼承來源 IJavaPeerable)
SetPeerReference(JniObjectReference)

將回傳的值設為 PeerReference。

(繼承來源 IJavaPeerable)
UnregisterFromRuntime()

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

(繼承來源 IJavaPeerable)
Watchable()

回傳建立此手錶金鑰的物件。

擴充方法

名稱 Description
GetJniTypeName(IJavaPeerable)

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

JavaAs<TResult>(IJavaPeerable)

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

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

一個代表物件註冊Watchable watchable的標記。WatchService

TryJavaCast<TResult>(IJavaPeerable, TResult)

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

適用於