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_TICKdifusión y android.content.Intent#ACTION_TIME_CHANGED ACTION_TIME_CHANGEDandroid.content.Intent#ACTION_TIMEZONE_CHANGED ACTION_TIMEZONE_CHANGEDandroid.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(millis), 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>
Java documentación para android.os.SystemClock.
Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.
Propiedades
| Nombre | Description |
|---|---|
| Class |
Devuelve la clase en tiempo de ejecución de este |
| Handle |
Identificador de la instancia de Android subyacente. (Heredado de Object) |
| JniIdentityHashCode |
Obtiene el código hash de identidad asignado a este Java del mismo nivel por el tiempo de ejecución de interoperabilidad. (Heredado de Object) |
| JniManagedPeerState |
Instalaciones básicas de mantenimiento de tiempo. (Heredado de JavaObject) |
| JniPeerMembers |
Proporciona metadatos de miembro del mismo nivel de JNI para este tipo. |
| PeerReference |
Obtiene la referencia de objeto JNI para este Java del mismo nivel. (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
| Nombre | Description |
|---|---|
| Clone() |
Crea y devuelve una copia de este objeto. (Heredado de Object) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
Instalaciones básicas de mantenimiento de tiempo. (Heredado de JavaObject) |
| CurrentGnssTimeClock() |
Devuelve un que |
| CurrentNetworkTimeClock() |
Devuelve un que |
| CurrentThreadTimeMillis() |
Devuelve milisegundos que se ejecutan en el subproceso actual. |
| Dispose() |
Libera los recursos mantenidos por este Java del mismo nivel. (Heredado de Object) |
| Dispose(Boolean) |
Libera los recursos mantenidos por este Java del mismo nivel. (Heredado de Object) |
| DisposeUnlessReferenced() |
Instalaciones básicas de mantenimiento de tiempo. (Heredado de JavaObject) |
| 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) |
Instalaciones básicas de mantenimiento de tiempo. (Heredado de JavaObject) |
| Equals(Object) |
Indica si algún otro objeto es "igual a" este. (Heredado de Object) |
| GetHashCode() |
Devuelve un valor de código hash para el objeto . (Heredado de Object) |
| JavaFinalize() |
Obsoletos.
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) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
Instalaciones básicas de mantenimiento de tiempo. (Heredado de JavaObject) |
| Sleep(Int64) |
Espera un número determinado de milisegundos (de uptimeMillis) antes de devolver. |
| ToArray<T>() |
Crea una matriz administrada a partir de este contenedor de matriz Java. (Heredado de Object) |
| ToString() |
Devuelve una representación de cadena del objeto . (Heredado de Object) |
| UnregisterFromRuntime() |
Anula el registro de este Java del mismo nivel del tiempo de ejecución de interoperabilidad. (Heredado de Object) |
| UptimeMillis() |
Devuelve milisegundos desde el arranque, sin contar el tiempo invertido en suspensión profunda. |
| UptimeNanos() |
Devuelve nanosegundos desde el arranque, sin contar el tiempo invertido en suspensión profunda. |
| Wait() |
Hace que el subproceso actual espere hasta que se despierte, 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
| Nombre | Description |
|---|---|
| IJavaPeerable.Disposed() |
Instalaciones básicas de mantenimiento de tiempo. (Heredado de JavaObject) |
| IJavaPeerable.Finalized() |
Instalaciones básicas de mantenimiento de tiempo. (Heredado de JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
Instalaciones básicas de mantenimiento de tiempo. (Heredado de JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Instalaciones básicas de mantenimiento de tiempo. (Heredado de JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Instalaciones básicas de mantenimiento de tiempo. (Heredado de JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Instalaciones básicas de mantenimiento de tiempo. (Heredado de JavaObject) |
Métodos de extensión
| Nombre | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Obtiene el nombre JNI del tipo de la instancia |
| JavaAs<TResult>(IJavaPeerable) |
Intente coerció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. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Intente coerción |