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

java.util
クラス Timer

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

public class Timer
extends Object

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

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

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

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

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

導入されたバージョン:
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.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 部分は同仕様の範囲外であるため、まったく参考とはしていません。

※仕様書のライセンス上、問題は無いと考えておりますが、万が一問題があるとお考えの関係者の方がいらっしゃいましたらメールにて連絡をいただけると幸いに存じます(第一言語に日本語、第二言語に英語を希望しますが、返信は基本的に日本語で行います)。

この API リファレンスは仕様書の日本語版という位置づけでは作成していませんし、仕様書ほど厳格でもありません。MUST、SHOULD、MAY などの仕様の条件を強調する文を維持していません(反映すらしていない個所もあります)。仮想マシンおよび MIDP の実装のために使用することは避けてください。そのような用途には必ず公式仕様書原文そのものを用いるべきです。
この API リファレンスに記載されている内容は"さかきけい"が Sun Microsystems, Inc や Motorola, Inc、Java Community Process が公開している各種公式資料を元に、独自に調査・編集したものであり、Sun Microsystems, Inc や Motorola, Inc、Java Community Process 等とは一切関係ありません。したがってこの API リファレンスに関する問い合わせを関係各社等に対して行うことを固く禁じます。
また、記載された内容には既知か否かに関らず誤りが含まれる可能性があり、一切保証はありません。本 API リファレンスを使用した結果、不利益が生じたとしても"さかきけい"は一切の責任を負いません。
許可無く公開/非公開および Internet/Intranet/LAN を問わず他サイトに転載すること、複写および複製すること、ローカル・ファイル等に保存することを禁じます。


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

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