共用方式為


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() 是標準「牆」時鐘(時間和日期),表示自 epoch 以來的毫秒數。 時鐘可由使用者或電話網路設定(見 #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 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。

(繼承來源 Object)
ThresholdType

此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。

(繼承來源 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()

從開機後傳回 nanoseconds,包括睡眠時間。

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 <notified/em>或<em>interrupted</em> 來喚醒它。<>

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

讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。

(繼承來源 Object)
Wait(Int64)

讓目前的線程等到喚醒為止,通常是因為 <em>notified</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)

核心守時設施。

適用於