SystemClock Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Instalaciones básicas de mantenimiento de tiempo.
[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
- Herencia
- Atributos
Comentarios
Instalaciones básicas de mantenimiento de tiempo.
Hay tres relojes diferentes disponibles y no deben confundirse:
<ul><li>
System#currentTimeMillis System.currentTimeMillis()
es el reloj estándar de "pared" (hora y fecha) que expresa milisegundos desde la época. El reloj de pared se puede establecer por el usuario o la red telefónica (vea #setCurrentTimeMillis
), por lo que el tiempo puede saltar hacia atrás o hacia delante de forma impredecible. Este reloj solo debe usarse cuando la correspondencia con fechas y horas del mundo real es importante, como en una aplicación de calendario o reloj de alarma. Las medidas de tiempo transcurrido o intervalo deben usar un reloj diferente. Si usa System.currentTimeMillis(), considere la posibilidad de escuchar las android.content.Intent#ACTION_TIME_TICK ACTION_TIME_TICK
difusión y android.content.Intent#ACTION_TIMEZONE_CHANGED ACTION_TIMEZONE_CHANGED
android.content.Intent#ACTION_TIME_CHANGED ACTION_TIME_CHANGED
android.content.Intent Intent
para averiguar cuándo cambia la hora.
<Li>
#uptimeMillis
se cuenta en milisegundos desde el arranque del sistema. Este reloj se detiene cuando el sistema entra en suspensión profunda (CPU desactivada, pantalla oscura, dispositivo esperando entrada externa), pero no se ve afectado por el escalado del reloj, inactivo u otros mecanismos de ahorro de energía. Esta es la base para la mayoría de los intervalos, como Thread#sleep(long) Thread.sleep(millls)
, Object#wait(long) Object.wait(millis)
y System#nanoTime System.nanoTime()
. Se garantiza que este reloj es monotonico y es adecuado para el intervalo de tiempo cuando el intervalo no abarca la suspensión del dispositivo. La mayoría de los métodos que aceptan un valor de marca de tiempo esperan actualmente el #uptimeMillis
reloj.
<Li>
#elapsedRealtime
y #elapsedRealtimeNanos
devuelven el tiempo desde el arranque del sistema e incluyen suspensión profunda. Se garantiza que este reloj es monotonico y sigue marcando incluso cuando la CPU está en modos de ahorro de energía, por lo que es la base recomendada para el intervalo de uso general.
</ul>
Hay varios mecanismos para controlar el tiempo de los eventos:
<ul><li>
Las funciones estándar como Thread#sleep(long) Thread.sleep(millis)
y Object#wait(long) Object.wait(millis)
siempre están disponibles. Estas funciones usan el #uptimeMillis
reloj; si el dispositivo entra en suspensión, el resto del tiempo se pospondrá hasta que el dispositivo se despierte. Estas funciones sincrónicas pueden interrumpirse con Thread#interrupt Thread.interrupt()
y debe controlar InterruptedException
.
<Li>
#sleep SystemClock.sleep(millis)
es una función de utilidad muy similar a Thread#sleep(long) Thread.sleep(millis)
, pero omite InterruptedException
. Use esta función para retrasos si no usa Thread#interrupt Thread.interrupt()
, ya que conservará el estado interrumpido del subproceso.
<Li>
La android.os.Handler
clase puede programar devoluciones de llamada asincrónicas en un tiempo absoluto o relativo. Los objetos de controlador también usan el #uptimeMillis
reloj y requieren un android.os.Looper event loop
(normalmente presente en cualquier aplicación de GUI).
<Li>
android.app.AlarmManager
Puede desencadenar eventos de una sola vez o periódicos que se producen incluso cuando el dispositivo está en suspensión profunda o la aplicación no se está ejecutando. Los eventos se pueden programar con su elección de java.lang.System#currentTimeMillis
(RTC) o #elapsedRealtime
(ELAPSED_REALTIME) y provocar una android.content.Intent
difusión cuando se producen. </ul>
Documentación de Java para android.os.SystemClock
.
Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código abierto de Android y se usan según los términos descritos en la licencia de atribución de Creative Commons 2.5.
Propiedades
Class |
Devuelve la clase en tiempo de ejecución de este |
Handle |
Identificador de la instancia de Android subyacente. (Heredado de Object) |
JniIdentityHashCode |
Instalaciones básicas de mantenimiento de tiempo. (Heredado de Object) |
JniPeerMembers |
Instalaciones básicas de mantenimiento de tiempo. |
PeerReference |
Instalaciones básicas de mantenimiento de tiempo. (Heredado de Object) |
ThresholdClass |
Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código. (Heredado de Object) |
ThresholdType |
Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código. (Heredado de Object) |
Métodos
Clone() |
Crea y devuelve una copia de este objeto. (Heredado de Object) |
CurrentGnssTimeClock() |
Devuelve un que |
CurrentNetworkTimeClock() |
Devuelve un que |
CurrentThreadTimeMillis() |
Devuelve milisegundos que se ejecutan en el subproceso actual. |
Dispose() |
Instalaciones básicas de mantenimiento de tiempo. (Heredado de Object) |
Dispose(Boolean) |
Instalaciones básicas de mantenimiento de tiempo. (Heredado de Object) |
ElapsedRealtime() |
Devuelve milisegundos desde el arranque, incluido el tiempo invertido en suspensión. |
ElapsedRealtimeNanos() |
Devuelve nanosegundos desde el arranque, incluido el tiempo invertido en suspensión. |
Equals(Object) |
Indica si algún otro objeto es "igual a" este. (Heredado de Object) |
GetHashCode() |
Devuelve un valor de código hash del objeto. (Heredado de Object) |
JavaFinalize() |
Lo llama el recolector de elementos no utilizados en un objeto cuando la recolección de elementos no utilizados determina que no hay más referencias al objeto . (Heredado de Object) |
Notify() |
Activa un único subproceso que está esperando en el monitor de este objeto. (Heredado de Object) |
NotifyAll() |
Activa todos los subprocesos que están esperando en el monitor de este objeto. (Heredado de Object) |
SetCurrentTimeMillis(Int64) |
Establece la hora actual de la pared, en milisegundos. |
SetHandle(IntPtr, JniHandleOwnership) |
Establece la propiedad Handle. (Heredado de Object) |
Sleep(Int64) |
Espera un número determinado de milisegundos (de uptimeMillis) antes de devolver. |
ToArray<T>() |
Instalaciones básicas de mantenimiento de tiempo. (Heredado de Object) |
ToString() |
Devuelve una representación de cadena del objeto. (Heredado de Object) |
UnregisterFromRuntime() |
Instalaciones básicas de mantenimiento de tiempo. (Heredado de Object) |
UptimeMillis() |
Devuelve milisegundos desde el arranque, sin contar el tiempo invertido en suspensión profunda. |
Wait() |
Hace que el subproceso actual espere hasta que se despierta, normalmente por ser em notificado/em> o <em>interrumpido</em>.<>< (Heredado de Object) |
Wait(Int64, Int32) |
Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real. (Heredado de Object) |
Wait(Int64) |
Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real. (Heredado de Object) |
Implementaciones de interfaz explícitas
IJavaPeerable.Disposed() |
Instalaciones básicas de mantenimiento de tiempo. (Heredado de Object) |
IJavaPeerable.DisposeUnlessReferenced() |
Instalaciones básicas de mantenimiento de tiempo. (Heredado de Object) |
IJavaPeerable.Finalized() |
Instalaciones básicas de mantenimiento de tiempo. (Heredado de Object) |
IJavaPeerable.JniManagedPeerState |
Instalaciones básicas de mantenimiento de tiempo. (Heredado de Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
Instalaciones básicas de mantenimiento de tiempo. (Heredado de Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Instalaciones básicas de mantenimiento de tiempo. (Heredado de Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
Instalaciones básicas de mantenimiento de tiempo. (Heredado de Object) |
Métodos de extensión
JavaCast<TResult>(IJavaObject) |
Realiza una conversión de tipos comprobados en tiempo de ejecución de Android. |
JavaCast<TResult>(IJavaObject) |
Instalaciones básicas de mantenimiento de tiempo. |
GetJniTypeName(IJavaPeerable) |
Instalaciones básicas de mantenimiento de tiempo. |