IWatchService Interface
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Um serviço de inspeção que <em>observa</em> objetos registrados para alterações e 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
- Implementações
Comentários
Um serviço de inspeção que <em>observa</em> objetos registrados para alterações e eventos. Por exemplo, um gerenciador de arquivos pode usar um serviço de inspeção para monitorar um diretório para que ele possa atualizar sua exibição da lista de arquivos quando os arquivos são criados ou excluídos.
Um Watchable objeto é registrado com um serviço de inspeção invocando seu Watchable#register register método, retornando um WatchKey para representar o registro. Quando um evento para um objeto é detectado, a chave é <sinalizada<>/em> e, se não for sinalizada no momento, ela é enfileirada no serviço de inspeção para que possa ser recuperada por consumidores que invocam ou #poll() poll#take() take métodos para recuperar chaves e processar eventos. Depois que os eventos forem processados, o consumidor invocará o método da WatchKey#reset reset chave para redefinir a chave, o que permite que a chave seja sinalizada e enfileirada novamente com outros eventos.
O registro com um serviço de inspeção é cancelado invocando o método da WatchKey#cancel cancel chave. Uma chave que é enfileirada no momento em que é cancelada permanece na fila até ser recuperada. Dependendo do objeto, uma chave pode ser cancelada automaticamente. Por exemplo, suponha que um diretório seja observado e o serviço de inspeção detecte que ele foi excluído ou seu sistema de arquivos não está mais acessível. Quando uma chave é cancelada dessa maneira, ela é sinalizada e enfileirada, se não for sinalizada no momento. Para garantir que o consumidor seja notificado, o valor retornado do reset método indica se a chave é válida.
Um serviço de inspeção é seguro para uso por vários consumidores simultâneos. Para garantir que apenas um consumidor processe os eventos de um objeto específico a qualquer momento, deve-se tomar cuidado para garantir que o método da reset chave seja invocado somente após o processamento de seus eventos. O #close close método pode ser invocado a qualquer momento para fechar o serviço, fazendo com que os threads que aguardam para recuperar chaves sejam gerados ClosedWatchServiceException.
Os sistemas de arquivos podem relatar eventos mais rápidos do que podem ser recuperados ou processados e uma implementação pode impor um limite não especificado sobre o número de eventos que ele pode acumular. Quando uma implementação <em>consciente/<em> descarta eventos, ele organiza o método da WatchKey#pollEvents pollEvents chave para retornar um elemento com um tipo de evento .StandardWatchEventKinds#OVERFLOW OVERFLOW Esse evento pode ser usado pelo consumidor como um gatilho para examinar novamente o estado do objeto.
Quando um evento é relatado para indicar que um arquivo em um diretório assistido foi modificado, não há garantia de que o programa (ou programas) que modificaram o arquivo tenha sido concluído. Deve-se tomar cuidado para coordenar o acesso com outros programas que podem estar atualizando o arquivo. A java.nio.channels.FileChannel FileChannel classe define métodos para bloquear regiões de um arquivo contra o acesso por outros programas.
<dependências< da plataforma h2>/h2>
A implementação que observa eventos do sistema de arquivos destina-se a ser mapeada diretamente para o recurso de notificação de evento de arquivo nativo, quando disponível, ou usar um mecanismo primitivo, como sondagem, quando uma instalação nativa não estiver disponível. Consequentemente, muitos dos detalhes sobre como os eventos são detectados, suas linhas do tempo e se sua ordenação é preservada são altamente específicos para a implementação. Por exemplo, quando um arquivo em um diretório assistido é modificado, ele pode resultar em um único StandardWatchEventKinds#ENTRY_MODIFY ENTRY_MODIFY evento em algumas implementações, mas em vários eventos em outras implementações. Arquivos de curta duração (ou seja, arquivos que são excluídos muito rapidamente após serem criados) podem não ser detectados por implementações primitivas que sondam periodicamente o sistema de arquivos para detectar alterações.
Se um arquivo assistido não estiver localizado em um dispositivo de armazenamento local, ele será específico de implementação se as alterações no arquivo puderem ser detectadas. Em particular, não é necessário que sejam detectadas alterações nos arquivos realizados em sistemas remotos.
Adicionado em 1.7.
Java documentação para java.nio.file.WatchService.
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usadas de acordo com os termos descritos na Licença de Atribuição Creative Commons 2.5.
Propriedades
| Nome | Description |
|---|---|
| Handle |
Obtém o valor JNI do objeto Android subjacente. (Herdado de IJavaObject) |
| JniIdentityHashCode |
Retorna o valor da |
| JniManagedPeerState |
Estado do par gerenciado. (Herdado de IJavaPeerable) |
| JniObjectReferenceControlBlock |
Um serviço de inspeção que <em>observa</em> objetos registrados para alterações e eventos. (Herdado de IJavaPeerable) |
| JniPeerMembers |
Acesso ao membro e suporte à invocação. (Herdado de IJavaPeerable) |
| PeerReference |
Retorna uma JniObjectReference das instâncias de objeto Java encapsuladas. (Herdado de IJavaPeerable) |
Métodos
| Nome | Description |
|---|---|
| Close() |
Fecha este serviço de inspeção. |
| Disposed() |
Chamado quando a instância foi descartada. (Herdado de IJavaPeerable) |
| DisposeUnlessReferenced() |
Se não houver referências pendentes a essa instância, então chamará |
| Finalized() |
Chamado quando a instância foi finalizada. (Herdado de IJavaPeerable) |
| Poll() |
Recupera e remove a próxima tecla de inspeção ou |
| Poll(Int64, TimeUnit) |
Recupera e remove a próxima tecla de inspeção, aguardando se necessário até o tempo de espera especificado se nenhum ainda estiver presente. |
| SetJniIdentityHashCode(Int32) |
Defina o valor retornado por |
| SetJniManagedPeerState(JniManagedPeerStates) |
Um serviço de inspeção que <em>observa</em> objetos registrados para alterações e eventos. (Herdado de IJavaPeerable) |
| SetPeerReference(JniObjectReference) |
Defina o valor retornado por |
| Take() |
Recupera e remove a próxima tecla de inspeção, aguardando se nenhuma ainda está presente. |
| UnregisterFromRuntime() |
Cancele o registro dessa instância para que o runtime não a retorne de invocações futuras Java.Interop.JniRuntime+JniValueManager.PeekValue . (Herdado de IJavaPeerable) |
Métodos de Extensão
| Nome | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Obtém o nome JNI do tipo da instância |
| JavaAs<TResult>(IJavaPeerable) |
Tente coagir a digitar |
| JavaCast<TResult>(IJavaObject) |
Executa uma conversão de tipo marcada por runtime do Android. |
| JavaCast<TResult>(IJavaObject) |
Um serviço de inspeção que <em>observa</em> objetos registrados para alterações e eventos. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Tente coagir a digitar |