IWatchService インターフェイス

定義

変更とイベントに対して登録されたオブジェクト <em>watches</em> ウォッチ サービス。

[Android.Runtime.Register("java/nio/file/WatchService", "", "Java.Nio.FileNio.IWatchServiceInvoker", ApiSince=26)]
public interface IWatchService : IDisposable, Java.Interop.IJavaPeerable, Java.IO.ICloseable
[<Android.Runtime.Register("java/nio/file/WatchService", "", "Java.Nio.FileNio.IWatchServiceInvoker", ApiSince=26)>]
type IWatchService = interface
    interface ICloseable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
属性
実装

注釈

変更とイベントに対して登録されたオブジェクト <em>watches</em> ウォッチ サービス。 たとえば、ファイル マネージャーはウォッチ サービスを使用してディレクトリの変更を監視し、ファイルの作成時または削除時にファイルの一覧の表示を更新できます。

Watchable オブジェクトは、そのWatchable#register register メソッドを呼び出してウォッチ サービスに登録され、登録を表すWatchKeyを返します。 オブジェクトのイベントが検出されると、キーは <em>signalled</em>され、現在通知されていない場合は、キーを取得してイベントを処理する #poll() poll または #take() take メソッドを呼び出すコンシューマーが取得できるように、ウォッチ サービスにキューに入れられます。 イベントが処理されると、コンシューマーはキーの WatchKey#reset reset メソッドを呼び出してキーをリセットします。これにより、キーをシグナル通知し、さらにイベントを使用してキューに入れ直すことができます。

ウォッチ サービスへの登録は、キーの WatchKey#cancel cancel メソッドを呼び出すことによって取り消されます。 取り消された時点でキューに登録されたキーは、取得されるまでキューに残ります。 オブジェクトによっては、キーが自動的に取り消される場合があります。 たとえば、ディレクトリが監視されていて、監視サービスが削除されたか、ファイル システムにアクセスできなくなったことを検出したとします。 この方法でキーが取り消されると、通知され、キューに入れられます (現在通知されていない場合)。 コンシューマーに通知を受け取るために、 reset メソッドからの戻り値がキーが有効かどうかを示します。

ウォッチ サービスは、複数の同時実行コンシューマーが安全に使用できます。 特定のオブジェクトのイベントを常に 1 つのコンシューマーのみが処理できるようにするには、キーの reset メソッドがイベントの処理後にのみ呼び出されるように注意する必要があります。 #close close メソッドはいつでも呼び出してサービスを閉じ、キーの取得を待機しているスレッドがClosedWatchServiceExceptionをスローします。

ファイル システムは、イベントを取得または処理するよりも速く報告する場合があり、実装では、蓄積される可能性があるイベントの数に不特定の制限が課される可能性があります。 実装<em>nowingly</em>はイベントを破棄し、StandardWatchEventKinds#OVERFLOW OVERFLOWのイベント型の要素を返すようにキーのWatchKey#pollEvents pollEvents メソッドを配置します。 このイベントは、コンシューマーがオブジェクトの状態を再調査するためのトリガーとして使用できます。

監視対象ディレクトリ内のファイルが変更されたことを示すイベントが報告された場合、ファイルを変更したプログラム (またはプログラム) が完了したという保証はありません。 ファイルを更新する可能性がある他のプログラムとのアクセスを調整するには、注意が必要です。 java.nio.channels.FileChannel FileChannel クラスは、他のプログラムによるアクセスに対してファイルの領域をロックするメソッドを定義します。

<h2>Platform 依存関係</h2>

ファイル システムからのイベントを監視する実装は、使用可能な場合はネイティブ ファイル イベント通知機能に直接マップするか、ネイティブ機能が使用できない場合にポーリングなどのプリミティブ メカニズムを使用することを目的としています。 そのため、イベントの検出方法、タイムライン、および順序が保持されるかどうかに関する詳細の多くは、高度な実装固有のものです。 たとえば、監視ディレクトリ内のファイルが変更されると、一部の実装では 1 つの StandardWatchEventKinds#ENTRY_MODIFY ENTRY_MODIFY イベントが発生し、他の実装では複数のイベントが発生する可能性があります。 有効期間の短いファイル (作成後に非常に迅速に削除されるファイル) は、定期的にファイル システムをポーリングして変更を検出するプリミティブ実装では検出されない場合があります。

監視対象のファイルがローカル ストレージ デバイスに配置されていない場合、ファイルへの変更を検出できる場合は実装固有です。 特に、リモート システムで実行されるファイルへの変更を検出する必要はありません。

1.7 で追加されました。

Javaドキュメント。

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

プロパティ

名前 説明
Handle

基になる Android オブジェクトの JNI 値を取得します。

(継承元 IJavaObject)
JniIdentityHashCode

ラップされたインスタンスの java.lang.System.identityHashCode() の値を返します。

(継承元 IJavaPeerable)
JniManagedPeerState

マネージド ピアの状態。

(継承元 IJavaPeerable)
JniObjectReferenceControlBlock

変更とイベントに対して登録されたオブジェクト <em>watches</em> ウォッチ サービス。

(継承元 IJavaPeerable)
JniPeerMembers

メンバー アクセスと呼び出しのサポート。

(継承元 IJavaPeerable)
PeerReference

ラップされたJava オブジェクト インスタンスのJniObjectReferenceを返します。

(継承元 IJavaPeerable)

メソッド

名前 説明
Close()

このウォッチ サービスを閉じます。

Disposed()

インスタンスが破棄されたときに呼び出されます。

(継承元 IJavaPeerable)
DisposeUnlessReferenced()

このインスタンスへの未処理の参照がない場合は、 Dispose()を呼び出します。それ以外の場合は何も実行しません。

(継承元 IJavaPeerable)
Finalized()

インスタンスが終了したときに呼び出されます。

(継承元 IJavaPeerable)
Poll()

次のウォッチ キーを取得して削除するか、存在しない場合は null します。

Poll(Int64, TimeUnit)

次のウォッチ キーを取得して削除し、必要に応じて、指定された待機時間まで待機します (まだ存在しない場合)。

SetJniIdentityHashCode(Int32)

JniIdentityHashCodeによって返される値を設定します。

(継承元 IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

変更とイベントに対して登録されたオブジェクト <em>watches</em> ウォッチ サービス。

(継承元 IJavaPeerable)
SetPeerReference(JniObjectReference)

PeerReferenceによって返される値を設定します。

(継承元 IJavaPeerable)
Take()

次のウォッチ キーを取得して削除し、まだ存在しない場合は待機します。

UnregisterFromRuntime()

ランタイムが将来の Java.Interop.JniRuntime+JniValueManager.PeekValue 呼び出しから返されないように、このインスタンスの登録を解除します。

(継承元 IJavaPeerable)

拡張メソッド

名前 説明
GetJniTypeName(IJavaPeerable)

インスタンス selfの型の JNI 名を取得します。

JavaAs<TResult>(IJavaPeerable)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

JavaCast<TResult>(IJavaObject)

Android ランタイムチェック型変換を実行します。

JavaCast<TResult>(IJavaObject)

変更とイベントに対して登録されたオブジェクト <em>watches</em> ウォッチ サービス。

TryJavaCast<TResult>(IJavaPeerable, TResult)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

適用対象