IWatchService インターフェイス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
変更とイベントに対して登録されたオブジェクト <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 で追加されました。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。
プロパティ
| 名前 | 説明 |
|---|---|
| Handle |
基になる Android オブジェクトの JNI 値を取得します。 (継承元 IJavaObject) |
| JniIdentityHashCode |
ラップされたインスタンスの |
| JniManagedPeerState |
マネージド ピアの状態。 (継承元 IJavaPeerable) |
| JniObjectReferenceControlBlock |
変更とイベントに対して登録されたオブジェクト <em>watches</em> ウォッチ サービス。 (継承元 IJavaPeerable) |
| JniPeerMembers |
メンバー アクセスと呼び出しのサポート。 (継承元 IJavaPeerable) |
| PeerReference |
ラップされたJava オブジェクト インスタンスのJniObjectReferenceを返します。 (継承元 IJavaPeerable) |
メソッド
| 名前 | 説明 |
|---|---|
| Close() |
このウォッチ サービスを閉じます。 |
| Disposed() |
インスタンスが破棄されたときに呼び出されます。 (継承元 IJavaPeerable) |
| DisposeUnlessReferenced() |
このインスタンスへの未処理の参照がない場合は、 |
| Finalized() |
インスタンスが終了したときに呼び出されます。 (継承元 IJavaPeerable) |
| Poll() |
次のウォッチ キーを取得して削除するか、存在しない場合は |
| Poll(Int64, TimeUnit) |
次のウォッチ キーを取得して削除し、必要に応じて、指定された待機時間まで待機します (まだ存在しない場合)。 |
| SetJniIdentityHashCode(Int32) |
|
| SetJniManagedPeerState(JniManagedPeerStates) |
変更とイベントに対して登録されたオブジェクト <em>watches</em> ウォッチ サービス。 (継承元 IJavaPeerable) |
| SetPeerReference(JniObjectReference) |
|
| Take() |
次のウォッチ キーを取得して削除し、まだ存在しない場合は待機します。 |
| UnregisterFromRuntime() |
ランタイムが将来の Java.Interop.JniRuntime+JniValueManager.PeekValue 呼び出しから返されないように、このインスタンスの登録を解除します。 (継承元 IJavaPeerable) |
拡張メソッド
| 名前 | 説明 |
|---|---|
| GetJniTypeName(IJavaPeerable) |
インスタンス |
| JavaAs<TResult>(IJavaPeerable) |
|
| JavaCast<TResult>(IJavaObject) |
Android ランタイムチェック型変換を実行します。 |
| JavaCast<TResult>(IJavaObject) |
変更とイベントに対して登録されたオブジェクト <em>watches</em> ウォッチ サービス。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
|