Share via


IWatchService 인터페이스

정의

변경 및 이벤트에 대해 등록된 개체를 감시</포함하는> 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
특성
구현

설명

변경 및 이벤트에 대해 등록된 개체를 감시</포함하는> watch 서비스<>입니다. 예를 들어 파일 관리자는 watch 서비스를 사용하여 파일을 만들거나 삭제할 때 파일 목록의 표시를 업데이트할 수 있도록 디렉터리에서 변경 내용을 모니터링할 수 있습니다.

Watchable 개체는 해당 메서드를 호출하고 Watchable#register register 등록을 나타내는 를 반환하여 WatchKey watch 서비스에 등록됩니다. 개체에 대한 이벤트가 감지되면 키가 em>signalled</em>이고<, 현재 신호를 받지 않으면 키 검색 및 처리 이벤트를 호출 #poll() poll#take() take 하는 소비자에 의해 검색될 수 있도록 watch 서비스에 큐에 대기됩니다. 이벤트가 처리되면 소비자는 키의 WatchKey#reset reset 메서드를 호출하여 키를 다시 설정하여 키를 신호로 보내고 추가 이벤트와 함께 다시 큐에 대기할 수 있도록 합니다.

watch 서비스에 대한 등록은 키의 WatchKey#cancel cancel 메서드를 호출하여 취소됩니다. 취소될 때 큐에 대기 중인 키는 검색될 때까지 큐에 남아 있습니다. 개체에 따라 키가 자동으로 취소될 수 있습니다. 예를 들어 디렉터리가 감시되고 watch 서비스에서 디렉터리가 삭제되었거나 파일 시스템에 더 이상 액세스할 수 없음을 감지한다고 가정합니다. 이러한 방식으로 키가 취소되면 현재 신호를 받지 않으면 신호가 표시되고 큐에 대기됩니다. 소비자에게 메서드의 반환 값 reset 에 대한 알림을 받도록 하려면 키가 유효한지 나타냅니다.

watch 서비스는 여러 동시 소비자가 사용하기에 안전합니다. 한 소비자만 특정 개체에 대한 이벤트를 처리하도록 하려면 해당 이벤트가 처리된 후에만 키의 reset 메서드가 호출되도록 주의해야 합니다. 메서드는 #close close 언제든지 호출되어 서비스를 닫아 키를 검색하기 위해 대기하는 스레드가 를 throw ClosedWatchServiceException하도록 할 수 있습니다.

파일 시스템은 이벤트를 검색하거나 처리할 수 있는 것보다 빠르게 보고할 수 있으며, 구현은 누적될 수 있는 이벤트 수에 대해 지정되지 않은 제한을 적용할 수 있습니다. 구현<에서>고의로</em>이 이벤트를 삭제하는 경우 키의 메서드가 이벤트 형식StandardWatchEventKinds#OVERFLOW OVERFLOWWatchKey#pollEvents pollEvents 요소를 반환하도록 정렬합니다. 이 이벤트는 소비자가 개체의 상태를 다시 검사하는 트리거로 사용할 수 있습니다.

감시된 디렉터리의 파일이 수정되었음을 나타내는 이벤트가 보고되면 파일을 수정한 프로그램(또는 프로그램)이 완료되었다는 보장은 없습니다. 파일을 업데이트할 수 있는 다른 프로그램과 액세스를 조정하려면 주의해야 합니다. 클래스는 java.nio.channels.FileChannel FileChannel 다른 프로그램의 액세스에 대해 파일의 영역을 잠그는 메서드를 정의합니다.

<h2>플랫폼 종속성</h2>

파일 시스템에서 이벤트를 관찰하는 구현은 사용 가능한 경우 네이티브 파일 이벤트 알림 시설에 직접 매핑하거나 네이티브 기능을 사용할 수 없는 경우 폴링과 같은 기본 메커니즘을 사용하기 위한 것입니다. 따라서 이벤트가 검색되는 방법, 적시성 및 순서가 유지되는지 여부에 대한 많은 세부 정보는 매우 구체적인 구현입니다. 예를 들어 감시된 디렉터리의 파일이 수정되면 일부 구현에서는 단일 StandardWatchEventKinds#ENTRY_MODIFY ENTRY_MODIFY 이벤트가 발생하지만 다른 구현에서는 여러 이벤트가 발생할 수 있습니다. 수명이 짧은 파일(즉, 파일을 만든 후 매우 빠르게 삭제됨)은 파일 시스템을 주기적으로 폴링하여 변경 내용을 검색하는 기본 구현에서 검색되지 않을 수 있습니다.

감시된 파일이 로컬 스토리지 디바이스에 없는 경우 파일의 변경 내용을 검색할 수 있는 경우에 한정된 구현입니다. 특히 원격 시스템에서 수행되는 파일의 변경 내용을 검색할 필요는 없습니다.

1.7에 추가되었습니다.

에 대한 Java 설명서입니다 java.nio.file.WatchService.

이 페이지의 일부는 만들고 공유하며 에 설명된 용어에 따라 사용되는 작업을 기반으로 수정됩니다.

속성

Handle

기본 Android 개체의 JNI 값을 가져옵니다.

(다음에서 상속됨 IJavaObject)
JniIdentityHashCode

java.lang.System.identityHashCode() 래핑된 instance 값을 반환합니다.

(다음에서 상속됨 IJavaPeerable)
JniManagedPeerState

관리되는 피어의 상태입니다.

(다음에서 상속됨 IJavaPeerable)
JniPeerMembers

멤버 액세스 및 호출 지원.

(다음에서 상속됨 IJavaPeerable)
PeerReference

JniObjectReference 래핑된 Java 개체 instance 의 를 반환합니다.

(다음에서 상속됨 IJavaPeerable)

메서드

Close()

이 watch 서비스를 닫습니다.

Disposed()

instance 삭제되었을 때 호출됩니다.

(다음에서 상속됨 IJavaPeerable)
DisposeUnlessReferenced()

이 instance 대한 미해결 참조가 없으면 를 호출Dispose()합니다. 그렇지 않으면 아무 것도 수행하지 않습니다.

(다음에서 상속됨 IJavaPeerable)
Finalized()

instance 완료되면 호출됩니다.

(다음에서 상속됨 IJavaPeerable)
Poll()

다음 watch 키를 검색하고 제거하거나 null 없는 경우 을 검색하여 제거합니다.

Poll(Int64, TimeUnit)

다음 watch 키를 검색하고 제거합니다. 아직 없는 경우 지정된 대기 시간까지 필요한 경우 대기합니다.

SetJniIdentityHashCode(Int32)

에서 반환 JniIdentityHashCode된 값을 설정합니다.

(다음에서 상속됨 IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

변경 및 이벤트에 대해 등록된 개체를 감시</포함하는> watch 서비스<>입니다.

(다음에서 상속됨 IJavaPeerable)
SetPeerReference(JniObjectReference)

에서 반환 PeerReference된 값을 설정합니다.

(다음에서 상속됨 IJavaPeerable)
Take()

아직 없는 경우 대기하여 다음 watch 키를 검색하고 제거합니다.

UnregisterFromRuntime()

런타임이 이후 Java.Interop.JniRuntime+JniValueManager.PeekValue 호출에서 반환되지 않도록 이 instance 등록을 취소합니다.

(다음에서 상속됨 IJavaPeerable)

확장 메서드

JavaCast<TResult>(IJavaObject)

Android 런타임 확인 형식 변환을 수행합니다.

JavaCast<TResult>(IJavaObject)

변경 및 이벤트에 대해 등록된 개체를 감시</포함하는> watch 서비스<>입니다.

GetJniTypeName(IJavaPeerable)

변경 및 이벤트에 대해 등록된 개체를 감시</포함하는> watch 서비스<>입니다.

적용 대상