Unofficial
"CLDC 1.0
+ MIDP 1.0"
API Reference.
(日本語版)

java.util
クラス Timer

java.lang.Object
  上位を拡張 java.util.Timer

public class Timer
extends Object

バックグラウンドスレッドで将来実行するタスクをスケジュールするクラスです。 タスクは1回だけあるいは定期的に繰り返して実行するかを指定できます。

Java 2 Platform, Standard Edition.ではこのクラスによってデーモンスレッドによるスケジューリングも行えましたが、Java 2 Platform, Micro Edition ではデーモンスレッドは使用できません。

個々の Timer オブジェクトはタスクを実行するための単一のバックグラウンドスレッドを所有しています。 単一のバックグラウンドスレッド上でスケジュールされた TimerTask を順次実行するため、TimerTask は速やかに実行を終了するように記述する必要があります。 1つの TimerTask が長時間に渡って処理を行うと、その後の TimerTask は連続してまとめて実行されることになります。

全ての参照が外れ、全てのスケジュール内容の実行が終了するとバックグラウンドスレッドも同時に終了し、ガーベジコレクトの対象に含まれるようになります。 スケジュール内容全て取り消して終了する必要がある場合は cancel() メソッドを呼び出します。 この場合でも現在まさに実行中の処理は取り消せません。

このクラスはスレッドセーフに実装されています。外部で同期を取ることなく、複数のスレッドから1つのインスタンスを共有することができます。 Object.wait(long) メソッドを使用してスケジューリングを行っており、リアルタイム性は確保されていません。

このクラスは Mobile Information Device Profile にに所属しています。 MID Profile を含まない環境では使用できません。

導入されたバージョン:
MIDP-1.0
関連項目:
TimerTask, Object.wait(long)

コンストラクタの概要
Timer()
          インスタンスとバックグラウンドスレッドを生成します。
 
メソッドの概要
 void cancel()
          スケジュールされているタスクを全て破棄して、タイマーを終了します。
 void schedule(TimerTask tt, Date dt)
          渡されたタスクを指定日時に実行されるようにスケジュールします。
 void schedule(TimerTask tt, Date dt, long period)
          渡されたタスクを指定日時に実行されるようにスケジュールします。
 void schedule(TimerTask tt, long delay)
          渡されたタスクを指定ミリ秒経過後に実行されるようにスケジュールします。
 void schedule(TimerTask tt, long delay, long period)
          渡されたタスクを指定ミリ秒後に実行されるようにスケジュールします。
 void scheduleAtFixedRate(TimerTask tt, Date first, long period)
          渡されたタスクを指定日時に実行されるようにスケジュールします。
 void scheduleAtFixedRate(TimerTask tt, long delay, long period)
          渡されたタスクを指定ミリ秒後に実行されるようにスケジュールします。
 
クラス java.lang.Object から継承されたメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

Timer

public Timer()
インスタンスとバックグラウンドスレッドを生成します。 スレッドは通常のスレッドとして生成されます。 デーモンスレッドの使用を指定することはできません。

関連項目:
Thread, cancel()
メソッドの詳細

schedule

public void schedule(TimerTask tt,
                     long delay)
渡されたタスクを指定ミリ秒経過後に実行されるようにスケジュールします。

パラメータ:
tt - 実行する対象のタスクを渡します。
delay - 何ミリ秒後に実行するかを渡します。
例外:
IllegalArgumentException - delay が負数の場合あるいは delay + System.currentTimeMillis() が負数の場合に throw します。
IllegalStateException - タスクがスケジュール済みかキャンセルされている場合、タイマーがキャンセルされている場合、あるいはバックグラウンドスレッドが終了している場合に throw します。

schedule

public void schedule(TimerTask tt,
                     Date dt)
渡されたタスクを指定日時に実行されるようにスケジュールします。 指定された日時が過去を示している場合は直ちに実行されるようにスケジュールします。

パラメータ:
tt - 実行する対象のタスクを渡します。
dt - 実行する日時を渡します。
例外:
IllegalArgumentException - dt.getTime が負数の場合に throw します。
IllegalStateException - タスクがスケジュール済みかキャンセルされている場合、タイマーがキャンセルされている場合、あるいはバックグラウンドスレッドが終了している場合に throw します。

schedule

public void schedule(TimerTask tt,
                     long delay,
                     long period)

渡されたタスクを指定ミリ秒後に実行されるようにスケジュールします。 その後は指定された間隔をおいて繰り返し実行します。

実行の間隔は前回の実行終了時間を起点としてスケジュールします。 このため、何らかの理由により実行が遅延した場合、その後の実行も遅延することになります。 実行後に次のスケジュールを行うため、実際の実行間隔は指定された間隔よりも若干長くなります。

パラメータ:
tt - 実行する対象のタスクを渡します。
delay - 何ミリ秒後に実行するかを渡します。
period - 何ミリ秒の間隔を空けて繰り返し実行するかを渡します。
例外:
IllegalArgumentException - delay が負数の場合あるいは delay + System.currentTimeMillis() が負数の場合に throw します。
IllegalStateException - タスクがスケジュール済みかキャンセルされている場合、タイマーがキャンセルされている場合、あるいはバックグラウンドスレッドが終了している場合に throw します。

schedule

public void schedule(TimerTask tt,
                     Date dt,
                     long period)

渡されたタスクを指定日時に実行されるようにスケジュールします。 指定された日時が過去を示している場合は直ちに実行されるようにスケジュールします。 その後は指定された間隔をおいて繰り返し実行します。

実行の間隔は前回の実行終了時間を起点としてスケジュールします。 このため、何らかの理由により実行が遅延した場合、その後の実行も遅延することになります。 実行後に次のスケジュールを行うため、実際の実行間隔は指定された間隔よりも若干長くなります。

パラメータ:
tt - 実行する対象のタスクを渡します。
dt - 実行する日時を渡します。
period - 何ミリ秒の間隔を空けて繰り返し実行するかを渡します。
例外:
IllegalArgumentException - delay が負数の場合あるいは delay + System.currentTimeMillis() が負数の場合に throw します。
IllegalStateException - タスクがスケジュール済みかキャンセルされている場合、タイマーがキャンセルされている場合、あるいはバックグラウンドスレッドが終了している場合に throw します。

scheduleAtFixedRate

public void scheduleAtFixedRate(TimerTask tt,
                                long delay,
                                long period)

渡されたタスクを指定ミリ秒後に実行されるようにスケジュールします。 その後は指定された間隔をおいて繰り返し実行します。

実行の間隔は初回の実行開始時間を起点としてスケジュールします。 このため、何らかの理由により実行が遅延した場合、遅延によって次のスケジュールとバッティングした場合は遅れを取り戻すのに必要な回数連続してタスクの実行を行います。

パラメータ:
tt - 実行する対象のタスクを渡します。
delay - 何ミリ秒後に実行するかを渡します。
period - 何ミリ秒の間隔を空けて繰り返し実行するかを渡します。
例外:
IllegalArgumentException - delay が負数の場合あるいは delay + System.currentTimeMillis() が負数の場合に throw します。
IllegalStateException - タスクがスケジュール済みかキャンセルされている場合、タイマーがキャンセルされている場合、あるいはバックグラウンドスレッドが終了している場合に throw します。

scheduleAtFixedRate

public void scheduleAtFixedRate(TimerTask tt,
                                Date first,
                                long period)

渡されたタスクを指定日時に実行されるようにスケジュールします。 指定された日時が過去を示している場合は直ちに実行されるようにスケジュールします。 その後は指定された間隔をおいて繰り返し実行します。

実行の間隔は初回の実行開始時間を起点としてスケジュールします。 このため、何らかの理由により実行が遅延した場合、遅延によって次のスケジュールとバッティングした場合は遅れを取り戻すのに必要な回数連続してタスクの実行を行います。

パラメータ:
tt - 実行する対象のタスクを渡します。
first - 実行する日時を渡します。
period - 何ミリ秒の間隔を空けて繰り返し実行するかを渡します。
例外:
IllegalArgumentException - delay が負数の場合あるいは delay + System.currentTimeMillis() が負数の場合に throw します。
IllegalStateException - タスクがスケジュール済みかキャンセルされている場合、タイマーがキャンセルされている場合、あるいはバックグラウンドスレッドが終了している場合に throw します。

cancel

public void cancel()

スケジュールされているタスクを全て破棄して、タイマーを終了します。 現在タスクを実行中のスレッドには影響を与えません。 タイマーの終了によってバックグラウンドスレッドも同時終了となり、タスクのスケジュールは行われなくなります。

このメソッドは複数回も呼び出すことができますが、2回目以降の呼び出しは何も処理を行いません。

該当するタイマーによってスケジュールされたタスクが該当するタイマーのこのメソッドを呼び出した場合、実行中のタスクが該当するタイマーによって実行される最後のタスクとなります。


Unofficial
"CLDC 1.0
+ MIDP 1.0"
API Reference.
(日本語版)

このAPIリファレンスに記載されている内容は"さかきけい"が Sun Microsystems, Inc や Java Community Process が公開している各種公式資料を元に、独自に調査・編集したものであり、Sun Microsystems, Inc や Java Community Process 等とは一切関係ありません。したがってこのAPIリファレンスに関する問い合わせを関係各社等に対して行うことを固く禁じます。
また、記載された内容には既知か否かに関らず誤りが含まれる可能性があり、一切保証はありません。本APIリファレンスを使用した結果、不利益が生じたとしても"さかきけい"は一切の責任を負いません。
許可無く公開/非公開および Internet/Intranet/LAN を問わず他サイトに転載すること、複写および複製すること、ローカルファイル等に保存することを禁じます。


Copyright© 2001-2002,2005-2009 by KEI SAKAKI.
ALL RIGHTS RESERVED.
無断転載を禁じます。

Unofficial "CLDC 1.1 + MIDP 2.0" API Reference はこちらです。