com.docomostar
クラス StarApplication

Object
  上位を拡張 com.docomostar.StarApplication

public abstract class StarApplication
extends Object

Star アプリケーションの雛型を提供します。 アプリケーションは必ずこのクラスを継承して作成しなければなりません。

アプリケーションのライフサイクル

このクラスはアプリケーションのライフサイクルを定義します。 ライフサイクルの状態変更をアプリケーションに通知するメソッドや、 アプリケーションから状態変更を要求するためのメソッドなどが定義されています。

Star アプリケーションのライフサイクルには、 Started 状態Active 状態Suspended 状態Terminated 状態の4つの状態があります。 それぞれの状態の定義は以下の通りです。

Started 状態:

アプリケーション起動直後の状態です。 このクラスのコンストラクタ内のコード実行中も含まれます。 アプリケーションマネージャ は、アプリケーションを起動すると、 最初にコンストラクタを実行し、その後に started(int) メソッドを呼び出します。 started(int) メソッドの実行が完了すると、 アプリケーションの状態は Active 状態に移行します。 言い換えると、この状態下で実行して欲しいコードは started(int) メソッド内に書いておく必要があります。

この状態下では、アプリケーションが suspend() メソッドにより自発的にサスペンドすることはできません。 音声着信など Suspended 状態に移行するような事象が発生した場合にはサスペンドしますが、 その場合でも復帰時には activated(int) メソッドは呼び出されず、単純にサスペンド直前の状態から実行を再開します。 なお、Started 状態完了後には通常通り activated(int) がコールバックされます。

Active 状態:

アプリケーション実行中を表す状態です。 この状態に移行する時には activated(int) メソッドが呼び出されます。

Active 状態には、以下の2つの副状態が規定されています。 各副状態への遷移は、 アプリケーションマネージャ により行われ、副状態が変化するごとに stateChanged(boolean) メソッドが呼び出されます。

Full-Active 副状態:
アプリケーションが、 何の制限も無くバイトコードを実行できる状態です。
Semi-Active 副状態:
アプリケーションはバイトコードを実行可能ですが、 実行速度は低下する可能性があります。 また、CPU 資源以外の資源についても、利用が制限されているものがあります。 この状態は、同時に起動している他のアプリケーション(ネイティブのアプリケーションを含む)との協調動作や、 省電力を目的として規定されているものです。
なお、フルアプリでは、この状態を取ることは有りません。
Suspended 状態:

アプリケーションがバイトコードを実行できない状態です。 この状態に移行することをサスペンドすると表現することもあります。 この状態下では、アプリケーションはシステムメモリを占有したままとなっており、 レジューム時には、サスペンド直前の状態から実行を再開します。

Suspended 状態への移行は、 アプリケーションマネージャによってなされる事がほとんどですが、 suspend() を呼び出すことで、 アプリケーションが自発的にサスペンドすることもできます。

Active 状態においてサスペンドした場合は、 アプリケーションがレジュームすると、activated(int) が呼び出され、 Active 状態となります。 Started 状態においてサスペンドした場合には、 レジューム時にはコールバックは行われません。

Terminated 状態:
アプリケーションが終了し、システムメモリからもアンロードされた状態です。

状態遷移時の通知メソッド(started(int)activated(int)stateChanged(boolean))については、以下の事項が保証されています。 そのため、例えば activated(int) からリターンする前に複数回 Suspended 状態に遷移した場合などでは、 Active 状態下で連続して(間にサスペンド・レジュームなしに)複数回 activated(int) がコールバックされる可能性があることに注意してください。

アプリケーションの実行タイプと表示状態

このクラスはライフサイクルのほかに、 アプリケーションの実行タイプや表示状態も定義します。 アプリケーションの実行タイプや表示状態を取得するメソッドなどが定義されています。

Star アプリケーションの実行タイプには、 フルアプリミニアプリ の 2 つのタイプがあります。 Star アプリケーションでは、アプリケーションを格納する Jar パッケージに両方の実行タイプのアプリケーションを格納することができます。 それぞれの実行タイプについて以下に簡単に説明します。

フルアプリ:

フルアプリ実行環境で動作するアプリケーションです。 フルアプリ実行環境では同時に起動可能なアプリケーションは 1 つです。 フルアプリは、フルアプリ実行環境に与えられる資源を全て占有します。 フルアプリは、Star プロファイルに定義されている全てのクラスを利用できます。

フルアプリの表示状態には通常表示状態のみがあります。 フルアプリの表示状態は遷移することはありません。

ミニアプリ:

ミニアプリ実行環境で動作するアプリケーションです。 ミニアプリ実行環境では同時に起動可能なアプリケーションは複数です。 ミニアプリは、ミニアプリ実行環境に与えられる資源を複数のミニアプリで共有します。 ミニアプリは、Star プロファイルに定義されているクラスのサブセットを利用できます。 ミニアプリから利用できないクラスの一覧は 「ミニアプリ実行環境に関する注意事項」 を参照して下さい。

ミニアプリ実行環境は、複数のミニアプリを同時に表示するためのウィンドウ表示機能 (Widget View) を有しています。 ミニアプリの表示状態には、 Focused 状態Unfocused 状態Selected 状態Unselected 状態 の 4 つの状態があります。 ミニアプリの表示状態はユーザ操作等によって任意のタイミングで遷移します。 ミニアプリのそれぞれの表示状態について以下に簡単に説明します。

Focused 状態:
Widget View の一覧表示状態でフォーカスを取得している状態です。 この表示状態下では、ミニアプリから利用可能な機能のうち一部のみを利用可能です。 また、ミニアプリにキー入力イベントは通知されません。
Unfocused 状態:
Widget View の一覧表示状態でフォーカスを取得していない状態です。 この表示状態下では、ミニアプリから利用可能な機能は Focused 状態下と同じです。 また、ミニアプリにキー入力イベントは通知されません。
Selected 状態:
Widget View の個別表示状態で選択されている状態です。 この表示状態下では、ミニアプリから利用可能な機能のうち全てを利用可能です。 また、ミニアプリにキー入力イベントは通知されます。(※一部のキーを除く)
Unselected 状態:
Widget View の個別表示状態で選択されていない状態です。 この表示状態下では、ミニアプリはサスペンドします。

このクラスに定義されているアプリケーションの実行タイプや表示状態に関するメソッドの利用方法について以下に説明します。

アプリケーションの実行タイプに関するメソッドの利用:

アプリケーションの実行タイプを取得するには getAppType() を呼び出します。 アプリケーションの実行タイプは、アプリケーションの起動から終了まで変わりません。

現在の実行タイプのアプリケーションから、 同一 Jar パッケージ内に格納されている別の実行タイプのアプリケーションを連携起動するには changeAppType(int, Hashtable) を呼び出します。このメソッドは、現在実行中のアプリケーションを終了して、 別の実行タイプのアプリケーションを起動します。

アプリケーションの表示状態に関するメソッドの利用:

アプリケーションの現在の表示状態を取得するには getAppFaceState() を呼び出します。 ミニアプリの起動直後、および、レジューム直後には、必要に応じて現在の表示状態を取得して下さい。 ミニアプリのサスペンド直前とレジューム直後では、表示状態が同じであるとは限りません。

ミニアプリ実行中に表示状態が遷移した場合にその通知を受けるには、 addEventListener(int, StarEventListener) に該当するイベントを登録します。 ミニアプリ実行中に表示状態が遷移すると、対応するリスナにイベントが通知されます。

ミニアプリが自らサスペンド中に表示状態が遷移したことを契機にレジュームするには、 addWakeupEvent(int) に該当するイベントを登録します。 ミニアプリが自らサスペンド中に表示状態が遷移すると、 それを契機にミニアプリはレジュームします。

導入されたバージョン:
Star-1.0

フィールドの概要
static int ACTIVATED_BY_KEY_TOUCHED
          活性化された(レジュームされた)理由を表す定数の一つで、 自らサスペンド中に、 ユーザがキーに触れたことによって活性化されたことを表します(=-4)。
static int ACTIVATED_BY_NATIVE
          活性化された(レジュームされた)理由を表す定数の一つで、 アプリケーションマネージャ などのネイティブ機能により活性化されたことを表します(=-3)。
static int ACTIVATED_BY_WAKEUP_TIMER
          活性化された(レジュームされた)理由を表す定数の一つで、 起床タイマにより活性化されたことを表します(=-1)。
static int ACTIVATED_BY_WAKEUP_TIMER_DELAYED
          活性化された(レジュームされた)理由を表す定数の一つで、 起床タイマにより活性化されたが、 活性化に遅延が生じたことを表します(=-2)。
static int ACTIVATED_FROM_STARTED_STATE
          活性化された理由を表す定数の一つで、 started(int)の実行完了により活性化されたことを表します(=0)。
static int LAUNCHED_AFTER_DOWNLOAD
          ダウンロード直後(通常起動の1回目)に起動されたことを表す起動タイプです(=1)。
static int LAUNCHED_AS_MAP_PLATFORM_DIRECTLY [iアプリオプションAPI]
          連携起動ではなく、直接、地図プラットフォームとして起動されたアプリであることを表す起動タイプです(=26)。
static int LAUNCHED_BY_BLUETOOTH_REMOTE_DEVICE [iアプリオプションAPI]
          Bluetooth 外部機器からの接続により起動されたことを表す起動タイプです(=30)。
static int LAUNCHED_BY_INVITE_MESSAGE
          招集メッセージによって起動されたことを表す起動タイプです(=25)。
static int LAUNCHED_FROM_BML [iアプリオプションAPI]
          BML ブラウザからの連携によって起動されたことを表す起動タイプです(=21)。
static int LAUNCHED_FROM_BROWSER
           ブラウザからの連携によって起動されたことを表す起動タイプです(=5)。
static int LAUNCHED_FROM_CONTENTS_PACKAGE
          コンテンツパッケージから起動されたことを表す起動タイプです(=31)。
static int LAUNCHED_FROM_DTV [iアプリオプションAPI]
          デジタルテレビアプリケーションからの連携によって起動されたことを表す起動タイプです(=17)。
static int LAUNCHED_FROM_EXT
          外部インタフェースから起動されたことを表す起動タイプです(=4)。
static int LAUNCHED_FROM_FACE
           MyFACE から起動されたことを表す起動タイプです(=32)。
static int LAUNCHED_FROM_FELICA_ADHOC [iアプリオプションAPI]
          非接触IC 外部 R/W からの連続データ転送によって起動されたことを表す起動タイプです(=19)。
static int LAUNCHED_FROM_FULLAPPLI
          同一 JAR パッケージ内のフルアプリからの連携によって起動されたことを表す起動タイプです(=22)。
static int LAUNCHED_FROM_ICCARD_USAGE [iアプリオプションAPI]
           IC カード利用状況から起動されたことを表す起動タイプです(=33)。
static int LAUNCHED_FROM_IMAGE [iアプリオプションAPI]
          データ BOX に保存されている画像から起動されたことを表す起動タイプです(=29)。
static int LAUNCHED_FROM_LAUNCHER
          Star アプリからの連携(ランチャモード)によって起動されたことを表す起動タイプです(=8)。
static int LAUNCHED_FROM_LOCATION_IMAGE [iアプリオプションAPI]
           データ BOX に保存されている位置情報埋め込み画像から起動されたことを表す起動タイプです(=14)。
static int LAUNCHED_FROM_LOCATION_INFO [iアプリオプションAPI]
           位置情報から起動されたことを表す起動タイプです(=13)。
static int LAUNCHED_FROM_MAILER
           メーラからの連携によって起動されたことを表す起動タイプです(=6)。
static int LAUNCHED_FROM_MENU
          通常のメニューから起動されたことを表す起動タイプです(=0)。
static int LAUNCHED_FROM_MENU_FOR_DELETION [iアプリオプションAPI]
          ユーザがこのアプリケーションを削除するために、 メニューから起動されたことを表す起動タイプです(=20)。
static int LAUNCHED_FROM_MINIAPPLI
          同一 JAR パッケージ内のミニアプリからの連携によって起動されたことを表す起動タイプです(=23)。
static int LAUNCHED_FROM_PHONEBOOK [iアプリオプションAPI]
           電話帳から起動されたことを表す起動タイプです(=15)。
static int LAUNCHED_FROM_SCHEDULER [iアプリオプションAPI]
           スケジューラからの連携によって起動されたことを表す起動タイプです(=28)。
static int LAUNCHED_FROM_SELECTED_WORDS [iアプリオプションAPI]
          ネイティブアプリ上でユーザが任意に選択した文字列から起動されたアプリであることを表す起動タイプです(=27)。