Lingua

IWatchService Interfaccia

Definizione

Servizio espressioni di controllo che <controlla>/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

Servizio espressioni di controllo che <controlla>/em<> oggetti registrati per modifiche ed eventi. Ad esempio, un file manager può usare un servizio espressioni di controllo per monitorare una directory per individuare 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 espressioni di controllo richiamando il relativo Watchable#register register metodo, restituendo un WatchKey oggetto 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 espressioni di controllo in modo che possa essere recuperata dai consumer che richiamano i #poll() poll metodi o #take() take per recuperare chiavi ed eventi di elaborazione. Dopo che gli eventi sono stati elaborati, il consumer richiama il metodo della WatchKey#reset reset chiave per reimpostare la chiave, che consente di segnalare e accodare nuovamente la chiave con altri eventi.

La registrazione con un servizio espressioni di controllo viene annullata richiamando il metodo della WatchKey#cancel cancel chiave. Una chiave accodata al momento dell'annullamento rimane nella coda fino a quando non viene recuperata. A seconda dell'oggetto, una chiave può essere annullata automaticamente. Si supponga, ad esempio, che venga osservata una directory e che il servizio espressioni di controllo rilevi che è stato eliminato o che il file system non sia più accessibile. Quando una chiave viene annullata in questo modo, viene segnalata e accodata, se non è attualmente segnalata. Per assicurarsi che il consumer riceve 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 oggetto specifico in qualsiasi momento, è necessario assicurarsi che il metodo della reset chiave venga richiamato solo dopo l'elaborazione degli eventi. Il #close close metodo può essere richiamato in qualsiasi momento per chiudere il servizio causando l'attesa di recuperare chiavi da parte di qualsiasi thread, 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 al numero di eventi che può accumularsi. Quando un'implementazione <em>con conoscenza</em> rimuove gli eventi, dispone il 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 un file in una directory osservata è stato modificato, non vi è 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 parte di altri programmi.

<dipendenze< della piattaforma h2>/h2>

L'implementazione che osserva gli eventi del file system è progettata per eseguire il mapping direttamente alla struttura di notifica degli eventi di file nativa, se disponibile, o per usare un meccanismo primitivo, ad esempio il polling, quando una funzionalità nativa non è disponibile. Di conseguenza, molti dei dettagli su come 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 da implementazioni primitive che eseguono periodicamente il polling del file system per rilevare le modifiche.

Se un file watched non si trova in un dispositivo di archiviazione locale, è un'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.

per java.nio.file.WatchService.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

Proprietà

Nome Descrizione
Handle

Ottiene il valore JNI dell'oggetto Android sottostante.

(Ereditato da IJavaObject)
JniIdentityHashCode

Restituisce il valore di java.lang.System.identityHashCode() per l'istanza di cui è stato eseguito il wrapping.

(Ereditato da IJavaPeerable)
JniManagedPeerState

Stato del peer gestito.

(Ereditato da IJavaPeerable)
JniObjectReferenceControlBlock

Servizio espressioni di controllo che <controlla>/em<> oggetti registrati per modifiche ed eventi.

(Ereditato da IJavaPeerable)
JniPeerMembers

Supporto per l'accesso ai membri e la chiamata.

(Ereditato da IJavaPeerable)
PeerReference

Restituisce un JniObjectReference oggetto dell'istanza dell'oggetto di cui è stato eseguito il wrapping Java.

(Ereditato da IJavaPeerable)

Metodi

Nome Descrizione
Close()

Chiude questo servizio di controllo.

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 esegue alcuna operazione.

(Ereditato da IJavaPeerable)
Finalized()

Chiamato quando l'istanza è stata finalizzata.

(Ereditato da IJavaPeerable)
Poll()

Recupera e rimuove la chiave dell'espressione di controllo successiva o null se non sono presenti.

Poll(Int64, TimeUnit)

Recupera e rimuove la chiave di controllo 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)

Servizio espressioni di controllo che <controlla>/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 controllo successiva, in attesa che non siano ancora presenti.

UnregisterFromRuntime()

Annullare la registrazione di questa istanza in modo che il runtime non lo restituisca dalle chiamate future Java.Interop.JniRuntime+JniValueManager.PeekValue .

(Ereditato da IJavaPeerable)

Metodi di estensione

Nome Descrizione
GetJniTypeName(IJavaPeerable)

Ottiene il nome JNI del tipo dell'istanza selfdi .

JavaAs<TResult>(IJavaPeerable)

Provare a digitare selfTResult, verificando che la coercizione sia valida sul lato Java.

JavaCast<TResult>(IJavaObject)

Esegue una conversione del tipo di tipo controllato dal runtime Android.

JavaCast<TResult>(IJavaObject)

Servizio espressioni di controllo che <controlla>/em<> oggetti registrati per modifiche ed eventi.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Provare a digitare selfTResult, verificando che la coercizione sia valida sul lato Java.

Si applica a