|
Unofficial "CLDC 1.1 + MIDP 2.0" API Reference. (日本語版) |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object javax.microedition.midlet.MIDlet
public abstract class MIDlet
MIDlet
は MID Profile アプリケーションです。
アプリケーション管理ソフトウェアが MIDlet をコントロールし、アプリケーション・ディスクリプタから設定を取得し、状態変更に関する通知および要求することを可能にするために、アプリケーションはこのクラスを継承しなければなりません。
このクラスのメソッドは、アプリケーション管理ソフトウェアが MIDlet を作成、開始、休止、破棄することを可能にします。
MIDlet
は、実行および制御をアプリケーション管理ソフトウェアが行うために設計されたインタフェースを持つ、1セットのクラスです。
「状態(state)」によって、アプリケーション管理ソフトウェアは実行環境内の複数の MIDlet の活動を管理します。
いずれかの MIDlet を個別に開始および休止することにより所定の時間にアクティブな MIDlet を選択することができます。
アプリケーション管理ソフトウェアは、MIDlet の状態を維持し、状態を変更するために、MIDlet のメソッドを呼び出します。
MIDlet
は、アプリケーション管理ソフトによって呼び出される、内部の活動およびリソースの使用状況を更新するこれらのメソッドを実装します。
MIDlet
はいくつかの状態変更を自身で始めることができ、適切なメソッドの呼び出しによりそれらの状態変更をアプリケーション管理ソフトウェアに通知します。
注釈:このメソッドの呼び出しによって、インタフェース・シグナル状態を変更します。 状態変更を行うメソッドの呼び出しが返るまで、状態変更は完全ではありません。 これらのメソッドは迅速に処理が返されることが意図されています。
コンストラクタの概要 | |
---|---|
protected |
MIDlet()
サブクラスのために保護されたコンストラクタです。 |
メソッドの概要 | |
---|---|
int |
checkPermission(String permission)
指定したパーミッションのステータスを取得します。 |
protected abstract void |
destroyApp(boolean unconditional)
MIDlet に破棄状態に移行し、終了することを伝えます。 |
String |
getAppProperty(String key)
アプリケーション管理ソフトから指定された名前のプロパティを取り出すためのメカニズムを MIDlet に提供します。 |
void |
notifyDestroyed()
MIDlet が破棄状態へ移行し始めたことをアプリケーション管理ソフトウェアに通知するために使用します。 |
void |
notifyPaused()
MIDlet がアクティブ状態から休止状態に入ることをアプリケーション管理ソフトウェアに通知します。 |
protected abstract void |
pauseApp()
その MIDlet が休止し、休止状態に入ることを通知します。 |
boolean |
platformRequest(String URL)
示した URL をデバイスが扱う(例えば、表示またはインストール)ように要求します。 |
void |
resumeRequest()
アクティブ状態へ移行したいことを MIDlet が示すためのメカニズムを提供します。 |
protected abstract void |
startApp()
その MIDlet が開始し、アクティブ状態になったことを通知します。 |
クラス java.lang.Object から継承されたメソッド |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
コンストラクタの詳細 |
---|
protected MIDlet()
サブクラスのために保護されたコンストラクタです。 アプリケーション管理ソフトウェアは MIDlet の作成と MIDlet 作成の制限に責任を持ちます。 MIDlet は他の MIDlet の作成を試みてはなりません。
SecurityException
- アプリケーション管理ソフトウェアによる MIDlet の作成ではない場合に throw します。メソッドの詳細 |
---|
protected abstract void startApp() throws MIDletStateChangeException
その MIDlet
が開始し、アクティブ状態になったことを通知します。
アクティブ状態の MIDlet
は、リソースを所有することができます。
MIDlet
が休止状態の場合にメソッドが呼び出されます。
継続的な失敗と一時的な失敗の2種類の失敗はサービスが開始するのを防ぐことができます。
一時的な失敗は、MIDletStateChangeException
例外を throw すべきです。
一時的ではない失敗については、notifyDestroyed()
メソッドを呼び出すべきです。
実行時例外が startApp
の処理中に発生すると、MIDlet はすぐに破棄されます。
destroyApp
はクリーンナップを MIDlet に許容すると呼び出されます。
MIDletStateChangeException
- MIDlet
を現在開始することができないが、今後開始することができる可能性がある場合に throw します。protected abstract void pauseApp()
その MIDlet
が休止し、休止状態に入ることを通知します。
休止状態の MIDlet
はリソースを開放し、不活性となります。
MIDlet
がアクティブ状態の場合に限り、このメソッドは呼び出されます。
もし、この destroyApp
の処理中に実行時例外が throw された場合、直ちに破棄状態へ移行します。
この際、クリーンナップが許可されるなら、MIDlet
の destroyApp(boolean)
メソッドを呼び出します。
protected abstract void destroyApp(boolean unconditional) throws MIDletStateChangeException
MIDlet
に破棄状態に移行し、終了することを伝えます。
破棄状態では、MIDlet
はリソースを全て開放し、(必要に応じて)全ての永続的な状態を保存します。
このメソッドは休止状態あるいはアクティブ状態から呼ばれます。
MIDlet
は、終了する前に、リソースを開放するか、必要な情報あるいは状態を保存など、要求された全てのオペレーションを実行完了しなければなりません。
注釈: MIDlet
は、MIDletStateChangeException
を throw することにより、破棄状態へ移行しないように要求することができます。
ただし、これが有効なのは unconditional
が false
の場合のみです。
この値が true
の場合、MIDlet
はこのメソッドがどのように終了するかに関わらず、破棄状態へ移行すると仮定します。
それが無条件の要求ではない場合、MIDlet
は MIDletStateChangeException
を throw することにより、現在の状態に留まることを望んでいることを示すことができます。
この要求が受け入れられると、destroyApp
メソッドを後に再び呼び出します。
もし、この destroyApp
の処理中に実行時例外が throw された場合、その実行時例外は無視して破棄状態へ移行します。
unconditional
- 必ずクリーンナップおよびリソースの開放を行う必要がある場合は true
を、破棄状態に必ずしも遷移しなくてもよい場合は false
を渡します。
この場合、MIDlet
は破棄状態に移行しないことを望む場合には MIDletStateChangeException
を throw します。
MIDletStateChangeException
- MIDlet
が実行しつづけることを望む場合に throw します。
この要求は unconditional
が true
の場合、無視されます。public final void notifyDestroyed()
MIDlet が破棄状態へ移行し始めたことをアプリケーション管理ソフトウェアに通知するために使用します。
アプリケーション管理ソフトウェアは MIDlet の destroyApp
メソッドを呼び出すことはありません。そして、MIDlet により保持された全てのリソースは再利用可能であるとみなします。
MIDlet
は、そのために必要とされるオペレーション(リソースの開放やクリーンナップ処理等)を実行する必要があるのであれば、destroyApp(boolean)
メソッドを呼び出されたのと同じように処理を記述しなければなりません。
public final void notifyPaused()
MIDlet がアクティブ状態から休止状態に入ることをアプリケーション管理ソフトウェアに通知します。
MIDlet
が破棄状態へ移行する場合および MIDlet
がまだ開始されていない場合は、このメソッドの呼び出しは効果がありません。
アクティブ状態の場合、MIDlet
によって呼び出すことができます。
MIDlet
が notifyPause()
メソッドを呼び出す場合、今後再びアクティブ状態に移行する際に startApp()
メソッドを呼び出します。
また、自身が破棄状態に移行する際には destroyApp(boolean)
メソッドが呼び出されます。
アプリケーションがそれ自身を休止すると、それが再度アクティブ状態になるという要求のためには resumeRequest
を呼ぶ必要があります。
public final String getAppProperty(String key)
アプリケーション管理ソフトから指定された名前のプロパティを取り出すためのメカニズムを MIDlet
に提供します。
プロパティはアプリケーション・ディスクリプタ・ファイルとマニフェストの組み合わせから取り出します。
信頼されたアプリケーションにおいて、マニフェストにおける値はアプリケーション・ディスクリプタのものによって上書きされてはなりません。
両者が異なると、MIDlet はデバイスに対してインストールされません。
信頼されていないアプリケーションにおいて、マニフェストにおける属性と同じ名前がディスクリプタの属性にあるなら、ディスクリプタからの値を使用し、マニフェストからの値は無視します。
key
- プロパティの名前を渡します。
null
を返します。
NullPointerException
- name
に null
を渡すと throw します。public final void resumeRequest()
アクティブ状態へ移行したいことを MIDlet
が示すためのメカニズムを提供します。
アプリケーション管理ソフトウェアはアクティブ状態にどのアプリケーションを移行させるか決定するために、このメソッドの呼び出しを使用することができます。
アプリケーション管理ソフトウェアがこのアプリケーションをアクティブ状態へ移行させることを決定した場合、startApp()
メソッドを呼び出します。
このメソッドを呼び出すアプリケーションは一般に休止状態にあります。 休止状態でも、アプリケーションはタイマーまたはコールバックのような非同期イベントを扱うことができます。
public final boolean platformRequest(String URL) throws ConnectionNotFoundException
示した URL をデバイスが扱う(例えば、表示またはインストール)ように要求します。
プラットフォームに利用可能な適切な能力とリソースがあるなら、プラットフォームは適切なアプリケーションをフォアグラウンドに移動し、バックグラウンドに実行中の MIDlet スイートをキープしたまま、ユーザーはコンテンツと対話できるようにすべきです。 プラットフォームに利用可能な能力またはリソースがなければ、プラットフォームは URL 要求の扱いを MIDlet スイートが終了するまで待つかもしれません。 このような場合、要求した MIDlet スイートの終了時に、ユーザーがコンテンツと対話できるように、プラットフォームはそのときに適切なアプリケーション(もしも1つ存在しているなら)をフォアグラウンドに移動しなければなりません。
このメソッドはブロックしません。 さらに、このメソッドは複数の要求をキューには入れません。 要求が扱われる前に MIDlet スイートが終了しなければならないプラットフォームでは、最後の要求だけをプラットフォームは扱わなければなりません。 同時に MIDlet スイートと要求を扱うことができるプラットフォームでは、直ちに MIDlet スイートの各要求を扱うプラットフォーム・ソフトウェアに渡さなければなりません。
指定された URL が MIDlet スイート(アプリケーション・ディスクリプタまたは JAR ファイルのどちらか)への参照なら、要求を処理するアプリケーションは指定の名前のパッケージをインストールするという要求としてそれを解釈しなければなりません。 この場合、プラットフォームの通常の MIDlet スイートのインストール処理を使用べきです。そしてユーザーに処理を制御させなければなりません(ダウンロード、および/または、インストールの中止などを含む)。 インストールされる MIDlet スイートが現在動作している MIDlet スイートのアップデートであれば、アップデートを実行する前に、プラットフォームは現在動作している MIDlet スイートを最初に停止させなければなりません。 プラットフォームによっては、常にインストールを開始する前に現在動作している MIDlet スイートを止めることを必要とすることがあります。
指定された URL の形式が tel:<番号>
であれば、RFC2806 で指定されるように、プラットフォームは音声通話を開始するという要求として、これを解釈しなければなりません。
プラットフォームに1つの"電話"を扱うアプリケーションが提供されているならば、その要求を渡さなければなりません。
"電話"アプリケーションが存在するなら、ローカルおよびグローバルな電話をセットアップし、DTMF 送信ダイヤルを実行できなければなりません。
特に RFC2806 の要素が実装されなければならない全てではありません(特に状況を理解している端末における領域指定子、あるいはその他のいかなる要求事項)。
また、ISDN- サブアドレス、サービス・プロバイダ、および将来の拡張は無視することがあります。
ダイヤル中のポーズはいくつかの電話サービスでは使用することができません(典型的なアナログ電話では使用できますが、デジタル化された回線では1度にダイヤル内容を送信するため、ポーズの概念が存在しないためです)。
デバイスは、上記でリストアップされた要求事項に加えて、追加の URL 体系をサポートすることを選択することができます。
このメソッドを使用する多くの経路(例えば、ワイヤレス・ネットワークを通じてデータを転送する、または音声通話を開始する)が、多くのユーザーに対して金銭的な影響を及ぼすことがあります。 したがって、プラットフォームは動作を行う前に各要求を明らかに肯定を承認することをユーザーに提示しなければなりません。 実装における自由があるため、「心地よいユーザー経験」は確保できます。 例えば、いくつかのプラットフォームはユーザーに許可を求める各要求のためにダイアログを提示するかもしれません。他のプラットフォームでは適切なアプリケーションを実行し、URL または電話番号をフィールドに設定するかもしれませんが、ユーザーが明らかにロードをクリックするかダイヤルボタンを押すまで、アクションを行いません。
URL
- プラットフォームがロードする URL を渡します。
空の文字列(null
はない)は、全ての保留中の要求を取り消します。
true
を、そうでなければ false
を返します。
ConnectionNotFoundException
- プラットフォームが要求された URL を扱うことができないのであれば throw します。public final int checkPermission(String permission)
指定したパーミッションのステータスを取得します。 デバイス上のどの API もそのとき要求された特定アクセスのパーミッションを定義していないなら、拒否するようにそれを報告しなければなりません。 実行時にユーザーとの対話を必要とするかもしれないため、パーミッションのステータスが不明であるなら、それは未知であると報告しなければなりません。
permission
- 拒否、許容、あるいは未知をチェックする対象を渡します。
0
;
許可が許容されるなら 1
;
許可が未知であるなら 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 部分は同仕様の範囲外であるため、まったく参考とはしていません。 ※仕様書のライセンス上、問題は無いと考えておりますが、万が一問題があるとお考えの関係者の方がいらっしゃいましたらメールにて連絡をいただけると幸いに存じます(第一言語に日本語、第二言語に英語を希望しますが、返信は基本的に日本語で行います)。 |