SystemClock 类

定义

核心守时设施。

[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
继承
SystemClock
属性

注解

核心守时设施。

有三个不同的时钟可用,它们不应混淆:

<ul><li>

System#currentTimeMillis System.currentTimeMillis() 是标准“壁”时钟(时间和日期)表示自纪元以来的毫秒数。 时钟可由用户或电话网络设置(见 #setCurrentTimeMillis),因此时间可能会向后或向前跳转不可预知。 仅当与实际日期和时间的对应关系非常重要(例如日历或闹钟应用程序中)时,才应使用此时钟。 间隔或已用时间度量应使用不同的时钟。 如果使用 System.currentTimeMillis(),请考虑侦 android.content.Intent#ACTION_TIME_TICK ACTION_TIME_TICK听和 android.content.Intent#ACTION_TIME_CHANGED ACTION_TIME_CHANGEDandroid.content.Intent#ACTION_TIMEZONE_CHANGED ACTION_TIMEZONE_CHANGEDandroid.content.Intent Intent 广播,以确定时间何时发生更改。

<李>

#uptimeMillis 自系统启动以来的计数(以毫秒为单位)。 当系统进入深度睡眠(CPU 关闭、显示深色、等待外部输入的设备)时,此时钟将停止,但不受时钟缩放、空闲或其他节能机制的影响。 这是大多数间隔时间的基础,例如 Thread#sleep(long) Thread.sleep(millls)Object#wait(long) Object.wait(millis)System#nanoTime System.nanoTime()。 此时钟保证为单调,适合间隔不跨越设备睡眠时的间隔时间。 接受时间戳值的大多数方法当前需要 #uptimeMillis 时钟。

<李>

#elapsedRealtime#elapsedRealtimeNanos 返回系统启动后的时间,并包括深度睡眠。 此时钟保证为单调时钟,即使在 CPU 处于省电模式时,也会继续计时,因此建议使用常规用途间隔计时的基础。

</ul>

有多种机制可用于控制事件的计时:

<ul><li>

标准函数(如 Thread#sleep(long) Thread.sleep(millis)Object#wait(long) Object.wait(millis) 始终可用)。 这些函数使用 #uptimeMillis 时钟;如果设备进入睡眠状态,则剩余时间将推迟到设备唤醒。 这些同步函数可能会中断 Thread#interrupt Thread.interrupt(),必须处理 InterruptedException

<李>

#sleep SystemClock.sleep(millis) 是一个实用工具函数,它与它非常相似 Thread#sleep(long) Thread.sleep(millis),但它忽略 InterruptedException。 如果不使用 Thread#interrupt Thread.interrupt(),请使用此函数进行延迟,因为它将保留线程的中断状态。

<李>

android.os.Handler 类可以在绝对或相对时间计划异步回调。 处理程序对象还使用 #uptimeMillis 时钟,并且需要( android.os.Looper event loop 通常存在于任何 GUI 应用程序中)。

<李>

可以 android.app.AlarmManager 触发一次性或定期事件,即使设备处于深度睡眠状态或应用程序未运行也是如此。 事件可以按你选择( java.lang.System#currentTimeMillis RTC)或 #elapsedRealtime (ELAPSED_REALTIME)进行计划,并在事件发生时进行 android.content.Intent 广播。 </ul>

适用于 . 的 android.os.SystemClockJava 文档

本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。

属性

Class

返回此 Object的运行时类。

(继承自 Object)
Handle

基础 Android 实例的句柄。

(继承自 Object)
JniIdentityHashCode

核心守时设施。

(继承自 Object)
JniPeerMembers

核心守时设施。

PeerReference

核心守时设施。

(继承自 Object)
ThresholdClass

此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。

(继承自 Object)
ThresholdType

此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。

(继承自 Object)

方法

Clone()

创建并返回此对象的副本。

(继承自 Object)
CurrentGnssTimeClock()

返回从 Clock 1970 年 1 月 1 日起的 00:00:00。

CurrentNetworkTimeClock()

返回从 Clock 1970 年 1 月 1 日起的 00:00:00。

CurrentThreadTimeMillis()

返回在当前线程中运行的毫秒数。

Dispose()

核心守时设施。

(继承自 Object)
Dispose(Boolean)

核心守时设施。

(继承自 Object)
ElapsedRealtime()

返回自启动以来的毫秒数,包括睡眠时间。

ElapsedRealtimeNanos()

返回自启动以来的纳秒数,包括睡眠时间。

Equals(Object)

指示其他对象是否“等于”此对象。

(继承自 Object)
GetHashCode()

返回对象的哈希代码值。

(继承自 Object)
JavaFinalize()

当垃圾回收确定不再引用该对象时,由对象上的垃圾回收器调用。

(继承自 Object)
Notify()

唤醒正在等待此对象的监视器的单个线程。

(继承自 Object)
NotifyAll()

唤醒正在等待此对象的监视器的所有线程。

(继承自 Object)
SetCurrentTimeMillis(Int64)

设置当前墙时间(以毫秒为单位)。

SetHandle(IntPtr, JniHandleOwnership)

设置 Handle 属性。

(继承自 Object)
Sleep(Int64)

在返回之前等待给定的毫秒数(运行时间Millis)。

ToArray<T>()

核心守时设施。

(继承自 Object)
ToString()

返回对象的字符串表示形式。

(继承自 Object)
UnregisterFromRuntime()

核心守时设施。

(继承自 Object)
UptimeMillis()

返回自启动以来的毫秒数,不计算在深度睡眠中花费的时间。

Wait()

使当前线程等待,直到唤醒它,通常是通过 em 通知/em> 或 <em>interrupted</em>。<><

(继承自 Object)
Wait(Int64)

使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted</em>>,或直到经过一定数量的实时。

(继承自 Object)
Wait(Int64, Int32)

使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted</em>>,或直到经过一定数量的实时。

(继承自 Object)

显式接口实现

IJavaPeerable.Disposed()

核心守时设施。

(继承自 Object)
IJavaPeerable.DisposeUnlessReferenced()

核心守时设施。

(继承自 Object)
IJavaPeerable.Finalized()

核心守时设施。

(继承自 Object)
IJavaPeerable.JniManagedPeerState

核心守时设施。

(继承自 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

核心守时设施。

(继承自 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

核心守时设施。

(继承自 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

核心守时设施。

(继承自 Object)

扩展方法

JavaCast<TResult>(IJavaObject)

执行 Android 运行时检查的类型转换。

JavaCast<TResult>(IJavaObject)

核心守时设施。

GetJniTypeName(IJavaPeerable)

核心守时设施。

适用于