IWatchService インターフェイス

定義

登録されたオブジェクトを<>変更とイベントに対して監視</em> するwatch サービス。

[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> するwatch サービス。 たとえば、ファイル マネージャーは、ファイルの作成時または削除時にファイルの一覧の表示を更新できるように、watch サービスを使用してディレクトリの変更を監視できます。

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

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

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

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

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

<h2>プラットフォームの依存関係</h2>

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

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

1.7 で追加されました。

の Java ドキュメント java.nio.file.WatchService

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

プロパティ

Handle

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

(継承元 IJavaObject)
JniIdentityHashCode

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

(継承元 IJavaPeerable)
JniManagedPeerState

マネージド ピアの状態。

(継承元 IJavaPeerable)
JniPeerMembers

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

(継承元 IJavaPeerable)
PeerReference

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

(継承元 IJavaPeerable)

メソッド

Close()

このwatch サービスを閉じます。

Disposed()

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

(継承元 IJavaPeerable)
DisposeUnlessReferenced()

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

(継承元 IJavaPeerable)
Finalized()

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

(継承元 IJavaPeerable)
Poll()

次のwatchキーを取得して削除しますnull。存在しない場合は削除します。

Poll(Int64, TimeUnit)

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

SetJniIdentityHashCode(Int32)

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

(継承元 IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

登録されたオブジェクトを<>変更とイベントに対して監視</em> するwatch サービス。

(継承元 IJavaPeerable)
SetPeerReference(JniObjectReference)

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

(継承元 IJavaPeerable)
Take()

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

UnregisterFromRuntime()

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

(継承元 IJavaPeerable)

拡張メソッド

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

登録されたオブジェクトを<>変更とイベントに対して監視</em> するwatch サービス。

GetJniTypeName(IJavaPeerable)

登録されたオブジェクトを<>変更とイベントに対して監視</em> するwatch サービス。

適用対象