Share via


IWatchService Interfaccia

Definizione

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 java.lang.System.identityHashCode() l'istanza di wrapped.

(Ereditato da IJavaPeerable)
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 Dispose(); in caso contrario, non fa nulla.

(Ereditato da IJavaPeerable)
Finalized()

Chiamato quando l'istanza è stata finalizzata.

(Ereditato da IJavaPeerable)
Poll()

Recupera e rimuove la chiave di watch successiva oppure null se nessuna è presente.

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 JniIdentityHashCode.

(Ereditato da IJavaPeerable)
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 PeerReference.

(Ereditato da IJavaPeerable)
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.

Si applica a