語言

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
屬性

備註

核心考勤設施。

有三種不同的時鐘可供選擇,且不應混淆:

<烏爾><·李>

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_CHANGEDandroid.content.Intent Intent 廣播,以了解時間何時改變。

<李>

#uptimeMillis 自系統啟動以來,會以毫秒計數。 當系統進入深度休眠(CPU 關閉、顯示器變暗、裝置等待外部輸入)時,這個時脈會停止,但不受時脈縮放、閒置或其他省電機制影響。 這是大多數區間計時的基礎,如 Thread#sleep(long) Thread.sleep(millis)、 Object#wait(long) Object.wait(millis)和 System#nanoTime System.nanoTime()。 此時鐘保證為單調,適合在間隔未跨越裝置睡眠時進行間隔計時。 大多數接受時間戳記值的方法目前都預期時鐘。#uptimeMillis

<李>

#elapsedRealtime 並 #elapsedRealtimeNanos 回傳自系統啟動以來的時間,並包含深度睡眠。 此時脈保證為單調,且即使 CPU 處於省電模式仍持續跳動,因此是一般間隔定時的推薦基準。

</ul>

控制事件時機有幾種機制:

<烏爾><·李>

標準功能 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 (通常存在於任何圖形介面應用程式中)。

<李>

即使裝置處於深度休眠或應用程式未執行,也可能 android.app.AlarmManager 觸發一次性或重複發生的事件。 活動可依您選擇 java.lang.System#currentTimeMillis 的(RTC)或 #elapsedRealtime (ELAPSED_REALTIME)安排,並在發生時引發 android.content.Intent 廣播。 </ul>

Java 文件 android.os.SystemClock。

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

屬性

名稱 Description
Class

回傳此 Object的執行時類別。

(繼承來源 Object)
Handle

底層 Android 實例的帳號。

(繼承來源 Object)
JniIdentityHashCode

取得由互通執行時指派給此 Java 對等端的身份雜湊碼。

(繼承來源 Object)
JniManagedPeerState

核心考勤設施。

(繼承來源 JavaObject)
JniPeerMembers

提供此類型的 JNI 同儕成員元資料。

PeerReference

取得這個 Java 節點的 JNI 物件參考。

(繼承來源 Object)
ThresholdClass

此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。

(繼承來源 Object)
ThresholdType

此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。

(繼承來源 Object)

方法

名稱 Description
Clone()

建立並回傳此物件的副本。

(繼承來源 Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

核心考勤設施。

(繼承來源 JavaObject)
CurrentGnssTimeClock()

從1970年1月1日00:00:00開始回放 Clock 。

CurrentNetworkTimeClock()

從1970年1月1日00:00:00開始回放 Clock 。

CurrentThreadTimeMillis()

回傳目前執行緒中運行的毫秒。

Dispose()

釋放該 Java 節點所持有的資源。

(繼承來源 Object)
Dispose(Boolean)

釋放該 Java 節點所持有的資源。

(繼承來源 Object)
DisposeUnlessReferenced()

核心考勤設施。

(繼承來源 JavaObject)
ElapsedRealtime()

回傳自開機後的毫秒,包括睡眠時間。

ElapsedRealtimeNanos()

開機後回傳納秒,包括睡眠時間。

Equals(Object)

核心考勤設施。

(繼承來源 JavaObject)
Equals(Object)

表示是否有其他物體「等同」於此物。

(繼承來源 Object)
GetHashCode()

回傳物件的雜湊碼值。

(繼承來源 Object)
JavaFinalize()
已淘汰.

當垃圾回收判定該物件不再有相關參考時,由垃圾回收器呼叫。

(繼承來源 Object)
Notify()

喚醒一個正在該物件監視器上等待的執行緒。

(繼承來源 Object)
NotifyAll()

喚醒所有等待該物件監視器的執行緒。

(繼承來源 Object)
SetCurrentTimeMillis(Int64)

設定目前的牆壁時間,單位是毫秒。

SetHandle(IntPtr, JniHandleOwnership)

設定 Handle 屬性。

(繼承來源 Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

核心考勤設施。

(繼承來源 JavaObject)
Sleep(Int64)

等待指定數量的毫秒(即正常運作時間的 Millis)後才返回。

ToArray<T>()

從這個 Java 陣列包裝器建立一個受管理陣列。

(繼承來源 Object)
ToString()

回傳物件的字串表示。

(繼承來源 Object)
UnregisterFromRuntime()

將此 Java 節點從互通執行時中取消註冊。

(繼承來源 Object)
UptimeMillis()

從開機後回傳毫秒,不包括深度睡眠的時間。

UptimeNanos()

從開機後回傳納秒,不包括深度睡眠的時間。

Wait()

導致目前執行緒等待被喚醒,通常是透過 <em>通知</><em 或 em>中斷</em> 來喚醒。

(繼承來源 Object)
Wait(Int64, Int32)

會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。

(繼承來源 Object)
Wait(Int64)

會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。

(繼承來源 Object)

明確介面實作

名稱 Description
IJavaPeerable.Disposed()

核心考勤設施。

(繼承來源 JavaObject)
IJavaPeerable.Finalized()

核心考勤設施。

(繼承來源 JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

核心考勤設施。

(繼承來源 JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

核心考勤設施。

(繼承來源 JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

核心考勤設施。

(繼承來源 JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

核心考勤設施。

(繼承來源 JavaObject)

擴充方法

名稱 Description
GetJniTypeName(IJavaPeerable)

取得實例 self類型的 JNI 名稱。

JavaAs<TResult>(IJavaPeerable)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

JavaCast<TResult>(IJavaObject)

執行 Android 執行時檢查型別轉換。

JavaCast<TResult>(IJavaObject)

核心考勤設施。

TryJavaCast<TResult>(IJavaPeerable, TResult)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

適用於