IWatchService Interfaz
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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 |
| 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 |
| Finalized() |
Se llama cuando se ha finalizado la instancia. (Heredado de IJavaPeerable) |
| Poll() |
Recupera y quita la siguiente clave de inspección, o |
| 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 |
| 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 |
| 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 |
| JavaAs<TResult>(IJavaPeerable) |
Intente coerción |
| 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 |