Lenguaje

IWatchService Interfaz

Definición

Un servicio de inspección que <em>supervisa</em> objetos registrados para los cambios y eventos.

[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
Atributos
Implementaciones

Comentarios

Un servicio de inspección que <em>supervisa</em> objetos registrados para los cambios y eventos. Por ejemplo, un administrador de archivos puede usar un servicio de inspección para supervisar los cambios de un directorio para que pueda actualizar su presentación de la lista de archivos cuando se crean o eliminan los archivos.

Un Watchable objeto se registra con un servicio de inspección invocando su Watchable#register register método y devolviendo un WatchKey para representar el registro. Cuando se detecta un evento para un objeto, la clave está <>señalizada</em> y, si no está señalizada actualmente, se pone en cola al servicio de inspección para que los consumidores que invoquen a los #poll() poll métodos o #take() take para recuperar claves y procesar eventos. Una vez procesados los eventos, el consumidor invoca el método de WatchKey#reset reset la clave para restablecer la clave, lo que permite que la clave se señale y vuelva a poner en cola con eventos adicionales.

El registro con un servicio de inspección se cancela invocando el método de WatchKey#cancel cancel la clave. Una clave que se pone en cola en el momento en que se cancela permanece en la cola hasta que se recupera. Dependiendo del objeto, se puede cancelar automáticamente una clave. Por ejemplo, supongamos que se observa un directorio y el servicio de inspección detecta que se ha eliminado o que su sistema de archivos ya no es accesible. Cuando se cancela una clave de esta manera, se señala y se pone en cola, si no se señala actualmente. Para asegurarse de que el consumidor recibe una notificación del valor devuelto del reset método indica si la clave es válida.

Un servicio de inspección es seguro para su uso por varios consumidores simultáneos. Para asegurarse de que solo un consumidor procesa los eventos de un objeto determinado en cualquier momento, se debe tener cuidado para asegurarse de que el método de reset la clave solo se invoca una vez procesados sus eventos. El #close close método se puede invocar en cualquier momento para cerrar el servicio, lo que provoca que los subprocesos que esperan recuperar claves inicien ClosedWatchServiceException.

Los sistemas de archivos pueden notificar eventos más rápido de lo que se pueden recuperar o procesar y una implementación puede imponer un límite no especificado sobre el número de eventos que puede acumular. Cuando una implementación em sabiendo</em> descarta los eventos, organiza el método de WatchKey#pollEvents pollEvents la clave para devolver un elemento con un tipo de evento de StandardWatchEventKinds#OVERFLOW OVERFLOW.>< El consumidor puede usar este evento como desencadenador para volver a examinar el estado del objeto.

Cuando se notifica un evento para indicar que se ha modificado un archivo en un directorio supervisado, no hay ninguna garantía de que el programa (o los programas) que han modificado el archivo se hayan completado. Se debe tener cuidado para coordinar el acceso con otros programas que pueden estar actualizando el archivo. La java.nio.channels.FileChannel FileChannel clase define métodos para bloquear las regiones de un archivo contra el acceso de otros programas.

<h2>Dependencias de< la plataforma/h2>

La implementación que observa los eventos del sistema de archivos está pensado para asignarse directamente a la instalación de notificación de eventos de archivo nativo cuando esté disponible o para usar un mecanismo primitivo, como el sondeo, cuando una instalación nativa no está disponible. Por lo tanto, muchos de los detalles sobre cómo se detectan los eventos, sus escalas de tiempo y si su ordenación se conserva son muy específicos de la implementación. Por ejemplo, cuando se modifica un archivo de un directorio observado, puede dar lugar a un único StandardWatchEventKinds#ENTRY_MODIFY ENTRY_MODIFY evento en algunas implementaciones, pero varios eventos en otras implementaciones. Los archivos de corta duración (lo que significa que los archivos que se eliminan muy rápidamente después de crearlos) no se pueden detectar mediante implementaciones primitivas que sondean periódicamente el sistema de archivos para detectar cambios.

Si un archivo observado no se encuentra en un dispositivo de almacenamiento local, es específico de la implementación si se pueden detectar cambios en el archivo. En concreto, no es necesario que se detecten cambios en los archivos realizados en sistemas remotos.

Agregado en la versión 1.7.

Java documentación para java.nio.file.WatchService.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

Propiedades

Nombre Description
Handle

Obtiene el valor JNI del objeto Android subyacente.

(Heredado de IJavaObject)
JniIdentityHashCode

Devuelve el valor de java.lang.System.identityHashCode() para la instancia ajustada.

(Heredado de IJavaPeerable)
JniManagedPeerState

Estado del mismo nivel administrado.

(Heredado de IJavaPeerable)
JniObjectReferenceControlBlock

Un servicio de inspección que <em>supervisa</em> objetos registrados para los cambios y eventos.

(Heredado de IJavaPeerable)
JniPeerMembers

Compatibilidad con la invocación y el acceso de miembros.

(Heredado de IJavaPeerable)
PeerReference

Devuelve un JniObjectReference de la instancia de objeto Java ajustada.

(Heredado de IJavaPeerable)

Métodos

Nombre Description
Close()

Cierra este servicio de inspección.

Disposed()

Se llama cuando se ha eliminado la instancia.

(Heredado de IJavaPeerable)
DisposeUnlessReferenced()

Si no hay referencias pendientes a esta instancia, llama a Dispose(); de lo contrario, no hace nada.

(Heredado de IJavaPeerable)
Finalized()

Se llama cuando se ha finalizado la instancia.

(Heredado de IJavaPeerable)
Poll()

Recupera y quita la siguiente clave de inspección, o null si no hay ninguna presente.

Poll(Int64, TimeUnit)

Recupera y quita la siguiente clave de inspección, esperando si es necesario hasta el tiempo de espera especificado si aún no hay ninguna presente.

SetJniIdentityHashCode(Int32)

Establezca el valor devuelto por JniIdentityHashCode.

(Heredado de IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

Un servicio de inspección que <em>supervisa</em> objetos registrados para los cambios y eventos.

(Heredado de IJavaPeerable)
SetPeerReference(JniObjectReference)

Establezca el valor devuelto por PeerReference.

(Heredado de IJavaPeerable)
Take()

Recupera y quita la siguiente clave de inspección, esperando si aún no hay ninguna presente.

UnregisterFromRuntime()

Anule el registro de esta instancia para que el entorno de ejecución no lo devuelva de invocaciones futuras Java.Interop.JniRuntime+JniValueManager.PeekValue .

(Heredado de IJavaPeerable)

Métodos de extensión

Nombre Description
GetJniTypeName(IJavaPeerable)

Obtiene el nombre JNI del tipo de la instancia self.

JavaAs<TResult>(IJavaPeerable)

Intente coerción self para escribir TResult, comprobando que la coerción es válida en el lado de Java.

JavaCast<TResult>(IJavaObject)

Realiza una conversión de tipos comprobados en tiempo de ejecución de Android.

JavaCast<TResult>(IJavaObject)

Un servicio de inspección que <em>supervisa</em> objetos registrados para los cambios y eventos.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Intente coerción self para escribir TResult, comprobando que la coerción es válida en el lado de Java.

Se aplica a