SystemClock 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
核心守时设施。
[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
- 继承
- 属性
注解
核心守时设施。
有三个不同的时钟可用,它们不应混淆:
<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_CHANGED
android.content.Intent#ACTION_TIMEZONE_CHANGED ACTION_TIMEZONE_CHANGED
android.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.SystemClock
Java 文档
本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。
属性
Class |
返回此 |
Handle |
基础 Android 实例的句柄。 (继承自 Object) |
JniIdentityHashCode |
核心守时设施。 (继承自 Object) |
JniPeerMembers |
核心守时设施。 |
PeerReference |
核心守时设施。 (继承自 Object) |
ThresholdClass |
此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。 (继承自 Object) |
ThresholdType |
此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。 (继承自 Object) |
方法
Clone() |
创建并返回此对象的副本。 (继承自 Object) |
CurrentGnssTimeClock() |
返回从 |
CurrentNetworkTimeClock() |
返回从 |
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, Int32) |
使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted</em>>,或直到经过一定数量的实时。 (继承自 Object) |
Wait(Int64) |
使当前线程等待直到唤醒,通常是通过 <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) |
核心守时设施。 |