|
Unofficial "CLDC 1.1 + MIDP 2.0" API Reference. (日本語版) |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object java.util.Timer
public class Timer
バックグラウンド・スレッドで将来実行するタスクをスケジュールするクラスです。 タスクは1回だけあるいは定期的に繰り返して実行するかを指定できます。
Java Platform, Standard Edition.ではこのクラスによってデーモン・スレッドによるスケジューリングも行えましたが、Java Platform, Micro Edition ではデーモン・スレッドは使用できません。
個々の Timer
オブジェクトはタスクを実行するための単一のバックグラウンド・スレッドを所有しています。
単一のバックグラウンド・スレッド上でスケジュールされた TimerTask
を順次実行するため、TimerTask
は速やかに実行を終了するように記述する必要があります。
1つの TimerTask
が長時間に渡って処理を行うと、その後の TimerTask
は連続してまとめて実行されることになります。
全ての参照が外れ、全てのスケジュール内容の実行が終了するとバックグラウンド・スレッドも同時に終了し、ガーベジコレクトの対象に含まれるようになります。
スケジュール内容全て取り消して終了する必要がある場合は cancel()
メソッドを呼び出します。
この場合でも現在まさに実行中の処理は取り消せません。
このクラスはスレッド・セーフに実装されています。外部で同期を取ることなく、複数のスレッドから1つのインスタンスを共有することができます。
Object.wait(long)
メソッドを使用してスケジューリングを行っており、リアルタイム性は確保されていません。
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 |
コンストラクタの詳細 |
---|
public Timer()
Thread
,
cancel()
メソッドの詳細 |
---|
public void schedule(TimerTask tt, long delay)
tt
- 実行する対象のタスクを渡します。delay
- 何ミリ秒後に実行するかを渡します。
IllegalArgumentException
- delay
が負数の場合あるいは delay +
System.currentTimeMillis()
が負数の場合に throw します。
IllegalStateException
- タスクがスケジュール済みかキャンセルされている場合、タイマーがキャンセルされている場合、あるいはバックグラウンド・スレッドが終了している場合に throw します。public void schedule(TimerTask tt, Date dt)
tt
- 実行する対象のタスクを渡します。dt
- 実行する日時を渡します。
IllegalArgumentException
- dt.getTime
が負数の場合に throw します。
IllegalStateException
- タスクがスケジュール済みかキャンセルされている場合、タイマーがキャンセルされている場合、あるいはバックグラウンド・スレッドが終了している場合に throw します。public void schedule(TimerTask tt, long delay, long period)
渡されたタスクを指定ミリ秒後に実行されるようにスケジュールします。 その後は指定された間隔をおいて繰り返し実行します。
実行の間隔は前回の実行終了時間を起点としてスケジュールします。 このため、何らかの理由により実行が遅延した場合、その後の実行も遅延することになります。 実行後に次のスケジュールを行うため、実際の実行間隔は指定された間隔よりも若干長くなります。
tt
- 実行する対象のタスクを渡します。delay
- 何ミリ秒後に実行するかを渡します。period
- 何ミリ秒の間隔を空けて繰り返し実行するかを渡します。
IllegalArgumentException
- delay
が負数の場合あるいは delay +
System.currentTimeMillis()
が負数の場合に throw します。
IllegalStateException
- タスクがスケジュール済みかキャンセルされている場合、タイマーがキャンセルされている場合、あるいはバックグラウンド・スレッドが終了している場合に throw します。public void schedule(TimerTask tt, Date dt, long period)
渡されたタスクを指定日時に実行されるようにスケジュールします。 指定された日時が過去を示している場合は直ちに実行されるようにスケジュールします。 その後は指定された間隔をおいて繰り返し実行します。
実行の間隔は前回の実行終了時間を起点としてスケジュールします。 このため、何らかの理由により実行が遅延した場合、その後の実行も遅延することになります。 実行後に次のスケジュールを行うため、実際の実行間隔は指定された間隔よりも若干長くなります。
tt
- 実行する対象のタスクを渡します。dt
- 実行する日時を渡します。period
- 何ミリ秒の間隔を空けて繰り返し実行するかを渡します。
IllegalArgumentException
- delay
が負数の場合あるいは delay +
System.currentTimeMillis()
が負数の場合に throw します。
IllegalStateException
- タスクがスケジュール済みかキャンセルされている場合、タイマーがキャンセルされている場合、あるいはバックグラウンド・スレッドが終了している場合に throw します。public void scheduleAtFixedRate(TimerTask tt, long delay, long period)
渡されたタスクを指定ミリ秒後に実行されるようにスケジュールします。 その後は指定された間隔をおいて繰り返し実行します。
実行の間隔は初回の実行開始時間を起点としてスケジュールします。 このため、何らかの理由により実行が遅延した場合、遅延によって次のスケジュールとバッティングした場合は遅れを取り戻すのに必要な回数連続してタスクの実行を行います。
tt
- 実行する対象のタスクを渡します。delay
- 何ミリ秒後に実行するかを渡します。period
- 何ミリ秒の間隔を空けて繰り返し実行するかを渡します。
IllegalArgumentException
- delay
が負数の場合あるいは delay +
System.currentTimeMillis()
が負数の場合に throw します。
IllegalStateException
- タスクがスケジュール済みかキャンセルされている場合、タイマーがキャンセルされている場合、あるいはバックグラウンド・スレッドが終了している場合に throw します。public void scheduleAtFixedRate(TimerTask tt, Date first, long period)
渡されたタスクを指定日時に実行されるようにスケジュールします。 指定された日時が過去を示している場合は直ちに実行されるようにスケジュールします。 その後は指定された間隔をおいて繰り返し実行します。
実行の間隔は初回の実行開始時間を起点としてスケジュールします。 このため、何らかの理由により実行が遅延した場合、遅延によって次のスケジュールとバッティングした場合は遅れを取り戻すのに必要な回数連続してタスクの実行を行います。
tt
- 実行する対象のタスクを渡します。first
- 実行する日時を渡します。period
- 何ミリ秒の間隔を空けて繰り返し実行するかを渡します。
IllegalArgumentException
- delay
が負数の場合あるいは delay +
System.currentTimeMillis()
が負数の場合に throw します。
IllegalStateException
- タスクがスケジュール済みかキャンセルされている場合、タイマーがキャンセルされている場合、あるいはバックグラウンド・スレッドが終了している場合に throw します。public void cancel()
スケジュールされているタスクを全て破棄して、タイマーを終了します。 現在タスクを実行中のスレッドには影響を与えません。 タイマーの終了によってバックグラウンド・スレッドも同時終了となり、タスクのスケジュールは行われなくなります。
このメソッドは複数回も呼び出すことができますが、2回目以降の呼び出しは何も処理を行いません。
該当するタイマーによってスケジュールされたタスクが該当するタイマーのこのメソッドを呼び出した場合、実行中のタスクが該当するタイマーによって実行される最後のタスクとなります。
|
Unofficial "CLDC 1.1 + MIDP 2.0" API Reference. (日本語版) |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
公式仕様書原文の著作権表記等(※): Mobile Information Device Profile Specification ("Specification") Version: 2.0 Status: FCS Release: November 5, 2002 Copyright 2002 Sun Microsystems, Inc. and Motorola, Inc. All rights reserved. | ※ただしこの API リファレンスは英語仕様を一語一句正確に翻訳したものではなく、一度私が英語の仕様原文を読んだ上で元の意味と構造をなるべく保つように書き起こしたものです。このため一部は完全に異なる説明となっています。また CLDC 1.1 部分は同仕様の範囲外であるため、まったく参考とはしていません。 ※仕様書のライセンス上、問題は無いと考えておりますが、万が一問題があるとお考えの関係者の方がいらっしゃいましたらメールにて連絡をいただけると幸いに存じます(第一言語に日本語、第二言語に英語を希望しますが、返信は基本的に日本語で行います)。 |