SystemClock Classe
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.
Impianti di mantenimento del tempo di base.
[Android.Runtime.Register("android/os/SystemClock", DoNotGenerateAcw=true)]
public sealed class SystemClock : Java.Lang.Object
[<Android.Runtime.Register("android/os/SystemClock", DoNotGenerateAcw=true)>]
type SystemClock = class
inherit Object
- Ereditarietà
- Attributi
Commenti
Impianti di mantenimento del tempo di base.
Sono disponibili tre orologi diversi e non devono essere confusi:
<ul><li>
System#currentTimeMillis System.currentTimeMillis()
è l'orologio standard "wall" (ora e data) espresso in millisecondi dal periodo. L'orologio a parete può essere impostato dall'utente o dalla rete telefonica (vedere #setCurrentTimeMillis
), quindi il tempo può saltare indietro o in avanti imprevedibile. Questo orologio deve essere utilizzato solo quando la corrispondenza con date e ore reali è importante, ad esempio in un'applicazione di calendario o sveglia. Le misurazioni di intervallo o tempo trascorso devono usare un orologio diverso. Se si usa System.currentTimeMillis(), prendere in considerazione l'ascolto delle android.content.Intent#ACTION_TIME_TICK ACTION_TIME_TICK
trasmissioni e android.content.Intent#ACTION_TIME_CHANGED ACTION_TIME_CHANGED
android.content.Intent#ACTION_TIMEZONE_CHANGED ACTION_TIMEZONE_CHANGED
android.content.Intent Intent
per scoprire quando cambia l'ora.
<li>
#uptimeMillis
viene conteggiato in millisecondi dall'avvio del sistema. Questo orologio si arresta quando il sistema entra in sospensione profonda (CPU disattivata, schermo scuro, dispositivo in attesa di input esterno), ma non è influenzato dal ridimensionamento del clock, dall'inattività o da altri meccanismi di risparmio energia. Questa è la base per la maggior parte degli intervalli, ad esempio Thread#sleep(long) Thread.sleep(millls)
, Object#wait(long) Object.wait(millis)
e System#nanoTime System.nanoTime()
. Questo orologio è garantito che sia monotonico ed è adatto per l'intervallo di tempo quando l'intervallo non si estende sulla sospensione del dispositivo. La maggior parte dei metodi che accettano un valore timestamp prevede attualmente l'orologio #uptimeMillis
.
<li>
#elapsedRealtime
e #elapsedRealtimeNanos
restituire l'ora dall'avvio del sistema e includere il sonno profondo. Questo orologio è sicuramente monotonico e continua a tick anche quando la CPU è in modalità di risparmio energetico, quindi è la base consigliata per intervalli di utilizzo generico.
</ul>
Esistono diversi meccanismi per controllare la tempistica degli eventi:
<ul><li>
Le funzioni standard come Thread#sleep(long) Thread.sleep(millis)
e Object#wait(long) Object.wait(millis)
sono sempre disponibili. Queste funzioni usano l'orologio #uptimeMillis
; se il dispositivo entra in sospensione, il resto dell'ora verrà posticipato fino alla riattivazione del dispositivo. Queste funzioni sincrone possono essere interrotte con Thread#interrupt Thread.interrupt()
e è necessario gestire InterruptedException
.
<li>
#sleep SystemClock.sleep(millis)
è una funzione di utilità molto simile a Thread#sleep(long) Thread.sleep(millis)
, ma ignora InterruptedException
. Usare questa funzione per i ritardi se non si usa Thread#interrupt Thread.interrupt()
, perché manterrà lo stato interrotto del thread.
<li>
La android.os.Handler
classe può pianificare callback asincroni in un momento assoluto o relativo. Gli oggetti gestore usano anche l'orologio #uptimeMillis
e richiedono un oggetto android.os.Looper event loop
(in genere presente in qualsiasi applicazione GUI).
<li>
android.app.AlarmManager
Può attivare eventi occasionali o ricorrenti che si verificano anche quando il dispositivo è in sospensione profonda o l'applicazione non è in esecuzione. Gli eventi possono essere pianificati con la scelta di java.lang.System#currentTimeMillis
(RTC) o #elapsedRealtime
(ELAPSED_REALTIME) e causare una android.content.Intent
trasmissione quando si verificano. </ul>
Documentazione java per android.os.SystemClock
.
Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.
Proprietà
Class |
Restituisce la classe di runtime di questo |
Handle |
Handle per l'istanza di Android sottostante. (Ereditato da Object) |
JniIdentityHashCode |
Impianti di mantenimento del tempo di base. (Ereditato da Object) |
JniPeerMembers |
Impianti di mantenimento del tempo di base. |
PeerReference |
Impianti di mantenimento del tempo di base. (Ereditato da Object) |
ThresholdClass |
Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice. (Ereditato da Object) |
ThresholdType |
Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice. (Ereditato da Object) |
Metodi
Clone() |
Crea e restituisce una copia di questo oggetto. (Ereditato da Object) |
CurrentGnssTimeClock() |
Restituisce un oggetto |
CurrentNetworkTimeClock() |
Restituisce un oggetto |
CurrentThreadTimeMillis() |
Restituisce millisecondi in esecuzione nel thread corrente. |
Dispose() |
Impianti di mantenimento del tempo di base. (Ereditato da Object) |
Dispose(Boolean) |
Impianti di mantenimento del tempo di base. (Ereditato da Object) |
ElapsedRealtime() |
Restituisce millisecondi dall'avvio, incluso il tempo trascorso nel sonno. |
ElapsedRealtimeNanos() |
Restituisce nanosecondi dall'avvio, incluso il tempo trascorso nel sonno. |
Equals(Object) |
Indica se un altro oggetto è "uguale a" questo. (Ereditato da Object) |
GetHashCode() |
Restituisce un valore del codice hash per l'oggetto. (Ereditato da Object) |
JavaFinalize() |
Chiamato dal Garbage Collector su un oggetto quando Garbage Collection determina che non sono presenti altri riferimenti all'oggetto . (Ereditato da Object) |
Notify() |
Riattiva un singolo thread in attesa del monitor dell'oggetto. (Ereditato da Object) |
NotifyAll() |
Riattiva tutti i thread in attesa del monitor dell'oggetto. (Ereditato da Object) |
SetCurrentTimeMillis(Int64) |
Imposta il tempo di parete corrente, espresso in millisecondi. |
SetHandle(IntPtr, JniHandleOwnership) |
Imposta la proprietà Handle. (Ereditato da Object) |
Sleep(Int64) |
Attende un determinato numero di millisecondi (di tempo di attivitàMillis) prima di restituire. |
ToArray<T>() |
Impianti di mantenimento del tempo di base. (Ereditato da Object) |
ToString() |
Restituisce una rappresentazione di stringa dell'oggetto. (Ereditato da Object) |
UnregisterFromRuntime() |
Impianti di mantenimento del tempo di base. (Ereditato da Object) |
UptimeMillis() |
Restituisce millisecondi dall'avvio, senza contare il tempo trascorso nel sonno profondo. |
Wait() |
Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo <>una notifica</em> o <em>interrotto</em>. (Ereditato da Object) |
Wait(Int64, Int32) |
Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo>< una notifica</em> o <em>interrotto</em> o fino a quando non è trascorsa una determinata quantità di tempo reale. (Ereditato da Object) |
Wait(Int64) |
Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo>< una notifica</em> o <em>interrotto</em> o fino a quando non è trascorsa una determinata quantità di tempo reale. (Ereditato da Object) |
Implementazioni dell'interfaccia esplicita
IJavaPeerable.Disposed() |
Impianti di mantenimento del tempo di base. (Ereditato da Object) |
IJavaPeerable.DisposeUnlessReferenced() |
Impianti di mantenimento del tempo di base. (Ereditato da Object) |
IJavaPeerable.Finalized() |
Impianti di mantenimento del tempo di base. (Ereditato da Object) |
IJavaPeerable.JniManagedPeerState |
Impianti di mantenimento del tempo di base. (Ereditato da Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
Impianti di mantenimento del tempo di base. (Ereditato da Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Impianti di mantenimento del tempo di base. (Ereditato da Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
Impianti di mantenimento del tempo di base. (Ereditato da Object) |
Metodi di estensione
JavaCast<TResult>(IJavaObject) |
Esegue una conversione del tipo di tipo controllato dal runtime Android. |
JavaCast<TResult>(IJavaObject) |
Impianti di mantenimento del tempo di base. |
GetJniTypeName(IJavaPeerable) |
Impianti di mantenimento del tempo di base. |