Android.os.SystemClockクラスの概要



クラスの概要
コアタイミング施設.
 
3つの異なる時計が適しており、混同されるべきではありません.
System.currentTimeMillis()は、ミリ秒の自己記述を表す標準的な「壁」クロックです.この壁クロックは、ユーザまたは電話ネットワーク(setCurrentTimeMillis(long)を参照)によって設定することができるので、時間が前後に予知できないようにジャンプする可能性がある.このクロックは、カレンダーや目覚まし時計アプリケーションなど、現実世界の対応する日付と時間が重要である場合にのみ使用されるべきです.間隔または経過時間の測定には、異なるクロックを使用する必要があります.System.currentTimeMillis()を使用する場合は、リスニングを検討します.  ACTION_TIME_TICK , ACTION_TIME_CHANGED  和  ACTION_TIMEZONE_CHANGED放送は、時間が変化したときに発見されることを意図している.
uptimeMillis()は、ミリ秒単位でシステムの起動から現在の非スリープ期間までの時間をカウントします.このクロックは、システムが深い睡眠に入ったときに停止する(CPUが閉じ、暗い表示をし、外部入力装置を待つ)が、クロック調整、アイドル、その他の省エネ機構の影響を受けない. これは、基本的には、例えば、Thread.sleep(millls)Object.wait(millis)などの時間間隔に対して、  System.nanoTime()このクロックは単調であることが保証され、汎用的なユーザインタフェースイベント、性能測定、およびデバイス測定のために睡眠時間間隔時間を経過する必要のない他の提案の基礎である.ほとんどの方法では、uptimeMillis()クロックを除いて、タイムスタンプの値を受け入れます.
ElapsedRealtime()はミリ秒単位でカウント自動システムを起動し、深い睡眠を含む.このクロックは、測定間隔がシステム睡眠の期間を越える可能性がある場合に使用されるべきである.
これには、タイミングイベントを制御するためのいくつかのメカニズムがあります.
標準の機能像  Thread.sleep(millis) 和  Object.wait(millis) いつも似合う.これはuptimeMillis()クロックを使用する機能です.デバイスが睡眠に入ると、残りの時間はシステムが起動するまで延期されます.これらの同期機能は割り込みに伴う可能性がある  Thread.interrupt()メソッドで、InterruptedException例外を処理する必要があります.
SystemClock.sleep(millis) ユーティリティ関数の変化はThread.sleep(millis)と似ていますが、InterruptedException異常は無視されています.この関数を使用して生成された遅延は、スレッドの割り込み状態が保存されるため、Thread.interrupt()を使用しない場合に発生します.
プロセッサクラスは、絶対的または相対的な時間に非同期コールバックをスケジュールすることができる.プロセッサクラスオブジェクトも使用  uptimeMillis()クロックは、event loop(任意のGUIアプリケーションに正常に表示される)が必要です.このAlarmManagerは、深い睡眠中でもアプリケーションが実行されていない場合でも、1回または繰り返しイベントをトリガーできます.事件は計画的に発生する可能性があります.  currentTimeMillis()(RTC)機会または  elapsedRealtime() (ELApSED_REALTIME)は、それらが発生したときに意図的なブロードキャストを引き起こす.