IWatchService Interfaccia
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Un servizio watch che <>em watches/em> oggetti< registrati per modifiche ed eventi.
[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
- Attributi
- Implementazioni
Commenti
Un servizio watch che <>em watches/em> oggetti< registrati per modifiche ed eventi. Ad esempio, una gestione file può usare un servizio watch per monitorare una directory per le modifiche in modo che possa aggiornare la visualizzazione dell'elenco dei file quando vengono creati o eliminati i file.
Un Watchable
oggetto viene registrato con un servizio watch richiamando il Watchable#register register
relativo metodo, restituendo un oggetto WatchKey
per rappresentare la registrazione. Quando viene rilevato un evento per un oggetto, la chiave viene <>segnalata/em> e, se non è attualmente segnalata, viene accodata al servizio watch in modo che possa essere recuperata< dai consumer che richiamano i #poll() poll
metodi o #take() take
per recuperare chiavi e elaborare gli eventi. Dopo aver elaborato gli eventi, il consumer richiama il metodo della WatchKey#reset reset
chiave per reimpostare la chiave che consente di segnalare e ri codare la chiave con altri eventi.
La registrazione con un servizio watch viene annullata richiamando il metodo della WatchKey#cancel cancel
chiave. Una chiave in coda al momento dell'annullamento rimane nella coda finché non viene recuperata. A seconda dell'oggetto, una chiave può essere annullata automaticamente. Si supponga, ad esempio, che una directory venga osservata e il servizio watch rileva che è stato eliminato o che il file system non è più accessibile. Quando una chiave viene annullata in questo modo, viene segnalato e accodato, se non è attualmente segnalato. Per assicurarsi che il consumer riceva una notifica al valore restituito dal reset
metodo indica se la chiave è valida.
Un servizio watch è sicuro per l'uso da parte di più consumer simultanei. Per garantire che solo un consumer elabora gli eventi per un determinato oggetto in qualsiasi momento, è necessario prestare attenzione a assicurarsi che il metodo della chiave venga richiamato solo dopo l'elaborazione degli reset
eventi. Il #close close
metodo può essere richiamato in qualsiasi momento per chiudere il servizio causando eventuali thread in attesa di recuperare chiavi, per generare ClosedWatchServiceException
.
I file system possono segnalare eventi più velocemente di quanto possano essere recuperati o elaborati e un'implementazione può imporre un limite non specificato sul numero di eventi che possono accumularsi. Quando un'implementazione <<> em>ignora gli eventi, quindi dispone del metodo della WatchKey#pollEvents pollEvents
chiave per restituire un elemento con un tipo di evento .StandardWatchEventKinds#OVERFLOW OVERFLOW
Questo evento può essere usato dal consumer come trigger per esaminare nuovamente lo stato dell'oggetto.
Quando viene segnalato un evento per indicare che è stato modificato un file in una directory osservata, non esiste alcuna garanzia che il programma (o i programmi) che hanno modificato il file è stato completato. Prestare attenzione a coordinare l'accesso con altri programmi che potrebbero aggiornare il file. La java.nio.channels.FileChannel FileChannel
classe definisce i metodi per bloccare le aree di un file dall'accesso da altri programmi.
<dipendenze< della piattaforma h2/h2>>
L'implementazione che osserva gli eventi dal file system è destinata a eseguire il mapping direttamente alla struttura di notifica degli eventi di file nativa in cui è disponibile o per usare un meccanismo primitivo, ad esempio il polling, quando una struttura nativa non è disponibile. Di conseguenza, molti dei dettagli sul modo in cui vengono rilevati gli eventi, la loro tempestività e se l'ordinamento viene mantenuto sono altamente specifici dell'implementazione. Ad esempio, quando un file in una directory osservata viene modificato, può comportare un singolo StandardWatchEventKinds#ENTRY_MODIFY ENTRY_MODIFY
evento in alcune implementazioni, ma diversi eventi in altre implementazioni. I file di breve durata (ovvero i file eliminati molto rapidamente dopo la creazione) potrebbero non essere rilevati dalle implementazioni primitive che esegue periodicamente il polling del file system per rilevare le modifiche.
Se un file watched non si trova in un dispositivo di archiviazione locale, l'implementazione è specifica se è possibile rilevare modifiche al file. In particolare, non è necessario che vengano rilevate modifiche ai file eseguiti nei sistemi remoti.
Aggiunta nella versione 1.7.
Documentazione Java per java.nio.file.WatchService
.
Le parti di questa pagina sono modifiche in base al lavoro creato e condiviso dal Android Open Source e usato in base ai termini descritti nella .
Proprietà
Handle |
Ottiene il valore JNI dell'oggetto Android sottostante. (Ereditato da IJavaObject) |
JniIdentityHashCode |
Restituisce il valore di per |
JniManagedPeerState |
Stato del peer gestito. (Ereditato da IJavaPeerable) |
JniPeerMembers |
Supporto per l'accesso ai membri e la chiamata. (Ereditato da IJavaPeerable) |
PeerReference |
Restituisce un'istanza JniObjectReference dell'oggetto Java con wrapping. (Ereditato da IJavaPeerable) |
Metodi
Close() |
Chiude questo servizio watch. |
Disposed() |
Chiamato quando l'istanza è stata eliminata. (Ereditato da IJavaPeerable) |
DisposeUnlessReferenced() |
Se non sono presenti riferimenti in sospeso a questa istanza, chiama |
Finalized() |
Chiamato quando l'istanza è stata finalizzata. (Ereditato da IJavaPeerable) |
Poll() |
Recupera e rimuove la chiave di watch successiva oppure |
Poll(Int64, TimeUnit) |
Recupera e rimuove la chiave di watch successiva, in attesa se necessario fino al tempo di attesa specificato se non sono ancora presenti. |
SetJniIdentityHashCode(Int32) |
Impostare il valore restituito da |
SetJniManagedPeerState(JniManagedPeerStates) |
Un servizio watch che <>em watches/em> oggetti< registrati per modifiche ed eventi. (Ereditato da IJavaPeerable) |
SetPeerReference(JniObjectReference) |
Impostare il valore restituito da |
Take() |
Recupera e rimuove la chiave di watch successiva, in attesa se non sono ancora presenti. |
UnregisterFromRuntime() |
Annullare la registrazione di questa istanza in modo che il runtime non lo restituirà dalle chiamate future Java.Interop.JniRuntime+JniValueManager.PeekValue . (Ereditato da IJavaPeerable) |
Metodi di estensione
JavaCast<TResult>(IJavaObject) |
Esegue una conversione dei tipi controllati dal runtime Android. |
JavaCast<TResult>(IJavaObject) |
Un servizio watch che <>em watches/em> oggetti< registrati per modifiche ed eventi. |
GetJniTypeName(IJavaPeerable) |
Un servizio watch che <>em watches/em> oggetti< registrati per modifiche ed eventi. |