(57)【要約】【課題】アプリケーションプログラムを実行することによりアプリケーションを実現する端末装置に、発生した事象に応じてそのアプリケーションを中断し、中断されている間に生じた事象に応じて再開後の挙動を変えるアプリケーションを実現させる。【解決手段】アプリケーションプログラムを実行することによりアプリケーションを実現する端末装置に、予め定められた１または複数の事象のうち１の事象の発生を検出させ、実現しているアプリケーションをサスペンドさせるとともに、検出された事象を示す事象データを記憶させる。そして、端末装置は、サスペンドされたアプリケーションをレジュームする際に、記憶している事象データをレジュームされたアプリケーションへ引渡す。【選択図】        図８
2004302518.tif 000002
【特許請求の範囲】
【請求項１】
予め定められた１または複数の事象のうち１の事象の発生を検出し、該事象を示す事象データを生成する検出手段と、
前記検出手段により前記事象の発生が検出された場合に、アプリケーションプログラムを実行することにより実現されるアプリケーションをサスペンドするサスペンド手段と、
前記検出手段により生成された前記事象データを記憶する記憶手段と、
前記サスペンド手段によりサスペンドされたアプリケーションをレジュームするレジューム手段と、
前記記憶手段に記憶された前記事象データを前記レジューム手段によりレジュームされたアプリケーションへ渡す引渡し手段と
を有する端末装置。
【請求項２】
前記記憶手段は、前記サスペンド手段によりアプリケーションがサスペンドされてから、該アプリケーションが前記レジューム手段によりレジュームされるまでの間に発生した事象を示す事象データを記憶する
ことを特徴とする請求項１に記載の端末装置。
【請求項３】
通信網を介して通信する通信手段を備え、
前記検出手段は、自装置のユーザ宛に前記通信網を介して送信されてくるデータを前記通信手段により受信した場合に、実行中のアプリケーションプログラムをサスペンドするべき事象が発生したと判定する
ことを特徴とする請求項１に記載の端末装置。
【請求項４】
コンピュータ装置に、
予め定められた１または複数の事象のうち１の事象の発生を検出し、該事象を示す事象データを生成する検出手段と、
前記検出手段により前記事象の発生が検出された場合に、アプリケーションプログラムを実行することにより実現されるアプリケーションをサスペンドするサスペンド手段と、
前記検出手段により生成された前記事象データを記憶する記憶手段と、
前記サスペンド手段によりサスペンドされたアプリケーションをレジュームするレジューム手段と、
前記記憶手段に記憶された前記事象データを前記レジューム手段によりレジュームされたアプリケーションへ渡す引渡し手段と
を実現させるプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
アプリケーションプログラムの設計自由度を向上させる技術に関する。
【０００２】
【従来の技術】
スケジューラやゲームなどのアプリケーションを実現するためのアプリケーションプログラムを実行可能な携帯電話機が普及している。この種の携帯電話機では、アプリケーションプログラムの実行が、通話により中断・再開されることがある。このような中断・再開のための技術として、例えば、特許文献１には、アプリケーションプログラムの実行中に着呼要求があり当該要求を受け付ける操作が為された時に、アプリケーションプログラムの実行を中断するとともに通話を可能とし、その後、終話操作が為された時に、終話を行うとともに当該プログラムの実行を再開する、という技術が開示されている。
【０００３】
【特許文献１】
特開２００２−７７４５８号公報
【０００４】
【発明が解決しようとする課題】
ところで、携帯電話機のような個人的な装置には、ユーザの置かれている状況に応じて挙動を変化させることが望まれている。しかし、上述の技術では、中断時に携帯電話機が表示していた画面がそのまま再開時に表示されることになる。つまり、アプリケーションプログラムの実行が中断されている間にユーザに何が起きようとも、再開時に表示される画面は中断時に表示されていた画面そのものとなり、画一的である。
【０００５】
本発明は上記課題に鑑みてなされたものであり、中断されている間に生じた事象に応じて再開後の挙動を変えるアプリケーションを実現させるためのアプリケーションプログラムを実行する機能を有する端末装置と、端末装置に当該機能を実現させるためのプログラムとを提供することを目的としている。
【０００６】
【課題を解決するための手段】
上記課題を解決するために、本発明は、予め定められた１または複数の事象のうち１の事象の発生を検出し、該事象を示す事象データを生成する検出手段と、前記検出手段により前記事象の発生が検出された場合に、アプリケーションプログラムを実行することにより実現されるアプリケーションをサスペンドするサスペンド手段と、前記検出手段により生成された前記事象データを記憶する記憶手段と、前記サスペンド手段によりサスペンドされたアプリケーションをレジュームするレジューム手段と、前記記憶手段に記憶された前記事象データを前記レジューム手段によりレジュームされたアプリケーションへ渡す引渡し手段とを有する端末装置を提供する。
【０００７】
また、上記課題を解決するために、本発明は、コンピュータ装置に、予め定められた１または複数の事象のうち１の事象の発生を検出し、該事象を示す事象データを生成する検出手段と、前記検出手段により前記事象の発生が検出された場合に、アプリケーションプログラムを実行することにより実現されるアプリケーションをサスペンドするサスペンド手段と、前記検出手段により生成された前記事象データを記憶する記憶手段と、前記サスペンド手段によりサスペンドされたアプリケーションをレジュームするレジューム手段と、前記記憶手段に記憶された前記事象データを前記レジューム手段によりレジュームされたアプリケーションへ渡す引渡し手段とを実現させるプログラムを提供する。
【０００８】
このような端末装置およびプログラムを用いると、ある事象の発生によりアプリケーションをサスペンドする際には、該事象を示す事象データが記憶され、サスペンドされていたアプリケーションのレジューム後に、該事象データがレジュームされたアプリケーションへ引渡される。
【０００９】
【発明の実施の形態】
以下、図面を参照しつつ本発明の実施形態について説明する。
【００１０】
［Ａ．構成］
（１：通信システムの構成）
図１は、本発明に係る端末装置を含む通信システムの構成例を示す図である。図１に示されるように、この通信システムは、端末装置１０と、移動パケット通信網２０と、移動電話網３０とを有している。なお、図１では、１つの端末装置１０のみが例示されているが実際には複数の端末装置が存在する。
【００１１】
移動パケット通信網２０は、基地局２１を含んでおり、基地局２１の形成する無線エリアに在圏する端末装置１０に対してパケット通信サービスを提供することができる。また、移動電話網３０は、基地局３１を含んでおり、基地局３１の形成する無線エリアに在圏する端末装置１０に対して移動電話サービスを提供することができる。
【００１２】
端末装置１０は、オブジェクト指向のプログラミング言語の１つであるＪａｖａ（登録商標）で記述されたプログラムを実行するためのＪａｖａ実行環境を備えた携帯電話機である。この端末装置１０は、上記Ｊａｖａ実行環境で解釈および実行可能なＪａｖａバイトコードで構成されているアプリケーションプログラム（以下、「ＪａｖａＡＰＰ」と称する）を記憶している。そして、この端末装置１０はＪａｖａＡＰＰの実行をユーザに指示されると、このＪａｖａＡＰＰを構成するＪａｖａバイトコードをＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などに展開し、展開したＪａｖａバイトコードを上記Ｊａｖａ実行環境を用いて解釈することにより、実行することができる。このＪａｖａＡＰＰは、スケジューラ機能を端末装置１０に実現させるためのアプリケーションプログラムであり、図２に示すフローチャートに従った動作を端末装置１０に行わせるものである。このＪａｖａＡＰＰを実行中の端末装置１０は、図２に示されるように、まず、図３に示すスケジュール登録画面を端末装置１０の表示部に表示させる。そして、図３に示すスケジュール登録画面を視認したユーザは端末装置１０の操作部を操作することにより、各自のスケジュールを示すデータを端末装置１０へ入力し記憶させることができる。なお、本実施形態では、端末装置１０に記憶されているＪａｖａＡＰＰがスケジューラ機能を実現させるためアプリケーションプログラムである場合について説明するが、係るＪａｖａＡＰＰは、ゲーム機能を実現させるためのアプリケーションプログラムであっても良く、また待ち受け機能を実現させるためのアプリケーションプログラムであっても良い。
【００１３】
この端末装置１０は、在圏する無線セルを形成する基地局２１と無線通信を行い、移動パケット通信網２０を介して電子メールを送受信することができる。また、端末装置１０は、在圏する無線セルを形成する基地局３１と無線通信を行い、移動電話網３０を介して音声通話を行うことができる。この端末装置１０は、上記ＪａｖａＡＰＰを実行中に、移動電話網３０を介して通話呼び出しされたり、移動パケット通信網２０を介して電子メールを受信したりすると、ＪａｖａＡＰＰの実行をサスペンドする。ここで、ＪａｖａＡＰＰの実行をサスペンドするとは、端末装置１０がＪａｖａＡＰＰの実行中にユーザにより入力されたデータや実行中のＪａｖａＡＰＰを構成するＪａｖａバイトコードをＲＡＭへ展開したまま、そのＪａｖａＡＰＰを構成しているＪａｖａバイトコードを解釈し実行することを中断することである。このように、ＪａｖａＡＰＰの実行がサスペンドされても、ＪａｖａＡＰＰを構成するＪａｖａバイトコードの解釈および実行が中断されるだけであるから、サスペンドされる以前にユーザにより入力されたデータはそのまま保持される。そして、この端末装置１０は、通話が終了した後や、電子メールを受信してから所定の時間が経過した後に、サスペンドされているＪａｖａＡＰＰの実行をレジュームする。なお、ＪａｖａＡＰＰの実行をレジュームするとは、サスペンドされた時点からＪａｖａバイトコードの解釈および実行を再開することである。より詳細に説明すると、このＪａｖａＡＰＰには、レジュームされる場合にのみ呼出されるメソッド（以下、「レジュームメソッド」と称する）が内包されており、このレジュームメソッドが呼出されることによりレジュームされる。このレジュームメソッドが呼出されると端末装置１０は、図４に示す処理を行った後に、サスペンドされた時点からＪａｖａバイトコードの解釈および実行を再開し、図２に示す処理を再開する。
【００１４】
（２：端末装置１０の構成）
次に、図５を参照しつつ端末装置１０のハードウェア構成を説明する。図５に示されるように、端末装置１０は、制御部５１０と、表示部５２０と、操作部５３０と、計時部５４０と、無線通信部５５０と、音声入出力部５６０、記憶部５７０と、これら各要素間のデータ授受を仲介するバス５８０とを有している。
【００１５】
制御部５１０は、例えばＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）であり、記憶部５７０に格納されているソフトウェアを実行することにより端末装置１０の各部を中枢的に制御するものである。表示部５２０は、例えば液晶ディスプレイとその駆動回路であり、制御部５１０から引渡されたデータに応じた画像を表示する。操作部５３０は、数字や文字、操作指示などをユーザに入力させるための複数の操作子を備えており、これらの操作子の操作内容に応じたデータを制御部５１０へ引渡す。計時部５４０は、計時機能を備えており現在時刻を示すデータを制御部５１０へ供給するためのものである。
【００１６】
無線通信部５５０は、アンテナなどを備えており、基地局２１や、基地局３１と無線通信するためのものである。この無線通信部５５０は、基地局２１から送信されてくるパケットを受信し、受信したパケットを制御部５１０へ引渡すと共に、制御部５１０から引渡されたパケットを基地局２１へ送出する。また、無線通信部５５０は、基地局３１から送信されてきた音声信号を受信すると、受信した音声信号を音声入出力部５６０へ引渡すと共に、音声入出力部５６０から引渡された音声信号を基地局３１へ送出する。音声入出力部５６０は、スピーカーやマイクロホン、音声信号の符号化および復号化を行う音声ＣＯＤＥＣ（いずれも図示省略）を備えており、無線通信部５５０から引渡された音声信号に応じた音声をスピーカーに放音させると共に、マイクロホンにより集音した音声に応じた音声信号を無線通信部５５０へ引渡すものである。
【００１７】
記憶部５７０は、揮発性記憶部５７１と不揮発性記憶部５７２とを有している。揮発性記憶部５７１は、例えばＲＡＭであり、ソフトウェアを実行中の制御部５１０によりワークエリアとして使用される。不揮発性記憶部５７２は、例えばＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）であり、上述したＪａｖａＡＰＰを格納している。より詳細に説明すると、不揮発性記憶部５７２には、上述したＪａｖａＡＰＰを内包するＪＡＲ（Ｊａｖａ  ＡＲｃｈｉｖｅ）ファイルが格納されている。ＪＡＲファイルとは、ＪａｖａＡＰＰの本体プログラム（Ｊａｖａバイトコードで記述されたプログラム）と、このプログラムを実行する際に使用される画像データを格納した画像ファイルや音声データを格納した音声ファイルなどの、いわゆる「リソース」を１つにまとめたファイルである。また、このＪａｖａＡＰＰの他に、不揮発性記憶部５７２には、図６に示す中断事象テーブルと、オペレーティングシステム（以下、「ＯＳ」という）を実現するためのＯＳソフトウェア、電子メールの送受信を行うためのメーラソフトウェア、Ｊａｖａ実行環境を構築するためのソフトウェアが格納されている。
【００１８】
まず、中断事象テーブルについて図６を参照しつつ説明する。図６に示されるように、中断事象テーブルは、実行をサスペンドされたＪａｖａＡＰＰを一意に識別するためのプログラム識別子（例えば、ＪａｖａＡＰＰの名称）と、そのＪａｖａＡＰＰの実行をサスペンドする原因となった事象を示す事象データとを対応付けて格納している。この事象データは、“１”または“２”のいずれかの値を有するデータであり、事象データの値が“１”である場合には、「通話呼び出しによりサスペンドされたこと」を示しており、”２“である場合には、「電子メールの受信によりサスペンドされたこと」を示している。以下では、互いに対応付けられたプログラム識別子と事象データとの組を「中断事象データ」と称する。この中断事象データは、詳細は後述するが、ＪａｖａＡＰＰのサスペンドが行われる毎に中断事象テーブルへ書き込まれ、そのＪａｖａＡＰＰがレジュームされる毎に中断事象テーブルから削除される。制御部５１０は、中断事象テーブルの格納内容に基づいて、ＪａｖａＡＰＰの実行がサスペンドされる原因となった事象を特定することができる。なお、端末装置１０で実現されるＯＳが複数のＪａｖａＡＰＰを同時に実行することができないシングルタスクＯＳである場合には、事象データのみを中断事象テーブルへ格納しても良い。このような場合には、実行をサスペンドされているＪａｖａＡＰＰを一意に特定できるからである。
【００１９】
次に、Ｊａｖａ実行環境を構築するために端末装置１０に組み込まれているソフトウェアについて図７を参照しつつ説明する。図７は、端末装置１０におけるＪａｖａ実行環境を説明するための図である。この図に示されるように、端末装置１０には、Ｊ２ＭＥ（Ｊａｖａ  ２  ｐｌａｔｆｏｒｍ  Ｍｉｃｒｏ  Ｅｄｉｔｉｏｎ）に準拠したＪａｖａ実行環境を実現するためのソフトウェアが組み込まれている。ここで、Ｊ２ＭＥとは、小型電子器機向けに定められたＪａｖａ実行環境の規格である。この端末装置１０に組み込まれたソフトウェアには、ＫＶＭと、ＣＬＤＣ（Ｃｏｎｎｅｃｔｅｄ  Ｌｉｍｉｔｅｄ  Ｄｅｖｉｃｅ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ）クラスライブラリと、オリジナルＪａｖａ拡張プロファイルと、ＪＡＭ（Ｊａｖａ  Ａｐｐｌｉｃａｔｉｏｎ  Ｍａｎａｇｅｒ）とが含まれている。
【００２０】
ＫＶＭは、ＪＶＭの１種であり、携帯電話機やＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｃｅ）等の小型電子機器用に設計されている。ＪＶＭとは、ＪａｖａＡＰＰを構成しているＪａｖａバイトコードを制御部５１０が解釈可能なマシン語コードに変換し、制御部５１０に実行させるためのものである。また、ＣＬＤＣクラスライブラリは、携帯電話機やＰＤＡなどの小型電子器機向けの汎用的な機能を提供するためのクラスライブラリである。
【００２１】
オリジナルＪａｖａ拡張プロファイルは、ＣＬＤＣクラスライブラリを基礎として携帯電話機に特化した機能を提供するためのクラスライブラリである。このオリジナルＪａｖａ拡張プロファイルには、例えば、ユーザインタフェイスＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）、ネットワーキングＡＰＩ、スクラッチパッドＡＰＩなどが含まれている。ＪａｖａＡＰＰを実行中の制御部５１０は、そのＪａｖａＡＰＰを構成するＪａｖａバイトコードに従って、これらＡＰＩを呼出すことにより、これらＡＰＩの提供する機能を利用することができる。
【００２２】
ユーザインタフェイスＡＰＩとは、端末装置１０のユーザインタフェイス機能をサポートするためのＡＰＩである。ネットワーキングＡＰＩとは、ＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）により指定されたネットワークリソースへアクセスするためのＡＰＩである。スクラッチパッドＡＰＩとは、スクラッチパッドに対する書き込みや読み出しをサポートするためのＡＰＩである。なお、スクラッチパッドとは、詳細な図示は省略したが、不揮発性記憶部５７２内に設けられた記憶領域である。このスクラッチパッドには、ＪａｖａＡＰＰの実行に応じて発生するデータ（例えば、ユーザにより入力されたスケジュールを示すデータ）が格納される。なお、詳細な図示は省略したが、端末装置１０は、上述したＣＬＤＣクラスライブラリやオリジナルＪａｖａ拡張プロファイルの他に、メーカ独自拡張ライブラリを有している。このメーカ独自拡張ライブラリは、端末装置１０の製造者がそれぞれ独自の機能を提供するためのクラスライブラリである。
【００２３】
ＪＡＭは、ＯＳによる制御の下で、端末装置１０に記憶されているＪａｖａＡＰＰの管理を行うためのソフトウェアである。具体的には、制御部５１０は、ＪａｖａＡＰＰの管理を行うために、ＪＡＭに従い、ＪａｖａＡＰＰのインストールや更新、削除を行う機能、不揮発性記憶部５７２に格納されているＪａｖａＡＰＰの名称をリスト表示する機能、ＪａｖａＡＰＰの実行管理を行う機能を営む。
【００２４】
ＪａｖａＡＰＰの実行管理を行う機能とは、ＪａｖａＡＰＰの起動や強制終了、ＪａｖａＡＰＰの実行をサスペンドすることや、サスペンドされているＪａｖａＡＰＰの実行をレジュームする機能である。より詳細に説明すると、制御部５１０は、例えば、ユーザにＪａｖａＡＰＰを起動することを指示されると、ＪＡＭに従ってＪａｖａＡＰＰを揮発性記憶部５７１へ展開し、このＪａｖａＡＰＰを構成するＪａｖａバイトコードをＫＶＭに従って解釈し実行する。
【００２５】
その後、制御部５１０は、ＪＡＭに従って、ＪａｖａＡＰＰの実行を終了させることをユーザに指示されるまで、そのＪａｖａＡＰＰの実行をサスペンドするべき事象が発生したか否かを監視し、ＪａｖａＡＰＰの実行をサスペンドするべき事象が発生したと判定した場合には、実行中のＪａｖａＡＰＰをサスペンドすると共に、そのＪａｖａＡＰＰのプログラム識別子と、発生した事象に対応する事象データとを内包した中断事象データを中断事象テーブルへ書き込む。
【００２６】
更にその後、制御部５１０は、サスペンドしているＪａｖａＡＰＰの実行をレジュームすべき事象が発生したか否かを監視する。そして、制御部５１０は、ＪａｖａＡＰＰの実行をレジュームすべき事象が発生したと判定した場合には、サスペンドされているＪａｖａＡＰＰに内包されているレジュームメソッド呼び出し、そのＪａｖａＡＰＰをレジュームすると共に、そのＪａｖａＡＰＰのプログラム識別子を内包した中断事象データを中断事象テーブルから削除する。
【００２７】
［Ｂ．動作］
次に、端末装置１０の動作のうち、該端末装置１０の特徴を顕著に示す動作についてのみ図面を参照しつつ説明する。なお、以下に説明する動作例の前提として、端末装置１０の制御部５１０は、上記ＪａｖａＡＰＰを実行中であり、端末装置１０の表示部５２０には図３に示すスケジュール登録画面が表示されているものとする。
【００２８】
（動作例１：ＪａｖａＡＰＰを実行中に、通話呼び出しされた場合の動作）
上記ＪａｖａＡＰＰを実行中の端末装置１０が、通話呼び出しされた場合の動作について図８に示すフローチャートを参照しつつ説明する。図８に示されるように、ＪａｖａＡＰＰを実行中の制御部５１０は、通話呼び出しされた旨のデータを無線通信部５５０から受け取り（ステップＳＣ１）、実行中のＪａｖａＡＰＰのプログラム識別子と、通話呼び出しによるサスペンドであることを示す事象データ（すなわち、“１”）とを内包した中断事象データを中断事象テーブル（図６参照）へ書き込む（ステップＳＣ２）。そして、制御部５１０は、そのＪａｖａＡＰＰの実行をＪＡＭに従ってサスペンドする（ステップＳＣ３）。なお、本実施形態においては、中断事象データの書き込みを行った後に、ＪａｖａＡＰＰの実行をサスペンドする場合につて説明したが、ＪａｖａＡＰＰの実行をサスペンドした後に、中断事象データの書き込みを行っても勿論良い。
【００２９】
以降、ＪＡＭを実行中の制御部５１０は、ＪａｖａＡＰＰの実行をサスペンドする原因となった通話が終了したか否かを判定する（ステップＳＣ４）。具体的には、制御部５１０は、通話を終了する旨の入力操作が行われたことを示すデータを操作部５３０から受け取った場合に、通話が終了したと判定する。そして、制御部５１０は、ステップＳＣ４における判定結果が“Ｎｏ”である場合には、ステップＳＣ４の判定を繰り返し実行し、逆に、ステップＳＣ４の判定結果が“Ｙｅｓ”である場合には、後続するステップＳＣ５の処理を行う。
【００３０】
ステップＳＣ４に後続するステップＳＣ５では、制御部５１０は、上記ステップＳＣ３にてサスペンドしたＪａｖａＡＰＰの実行をＪＡＭに従ってレジュームする。具体的には、制御部５１０は、このＪａｖａＡＰＰのプログラム識別子を内包している中断事象データを中断事象テーブルから読み出し、この中断事象データに内包されている事象データを引数として、ＪａｖａＡＰＰに内包されているレジュームメソッドを呼出し、そのＪａｖａＡＰＰをレジュームする。なお、レジュームメソッドを実行中の制御部５１０の動作については、後に詳細に説明する。そして、制御部５１０は、ＪａｖａＡＰＰレジュームが完了した後、そのＪａｖａＡＰＰのプログラム識別子を内包している中断事象データを中断事象テーブルから削除する（ステップＳＣ６）。
【００３１】
図８のステップＳＣ５に戻って、ＪａｖａＡＰＰに内包されているレジュームメソッドを呼出し、そのレジュームメソッドを実行している制御部５１０が行う動作について、図４を参照しつつ説明する。図４に示されるように、制御部５１０は、まず、スケジュール登録画面（図３参照）を表示部５２０に表示させる（ステップＳＢ１）。そして、制御部５１０は、レジュームメソッドの呼び出し引数として引渡された事象データに応じたメッセージを、スケジュール登録画面の領域３１０に表示（ステップＳＢ２）させ、レジュームメソッドの実行を終了する。例えば、本動作例では、通話呼び出しによりサスペンドされたことを示す事象データが引渡されるから、領域３１０に表示されるメッセージの一例としては、「通話は終了しましたね。スケジュールの変更は必要ですか」というメッセージが挙げられる。レジュームメソッドが実行された結果、端末装置１０の表示部５２０には、図９に示すスケジュール登録画面が表示されることになる。以降、制御部５１０は、ＪａｖａＡＰＰを構成しているＪａｖａバイトコードに従って図２に示されるフローチャートに従った処理を実行する。
【００３２】
（動作例２：ＪａｖａＡＰＰを実行中に、電子メールを受信した場合の動作）次に、ＪａｖａＡＰＰを実行中に、電子メールを受信した場合の制御部５１０の動作を図１０に示すフローチャートを参照しつつ説明する。図１０に示すフローチャートが図８に示すフローチャートと異なっている点は、ステップＳＣ１に替えてステップＳＤ１を有する点と、ステップＳＣ４に替えてステップＳＤ４を有する点のみである。
【００３３】
ステップＳＤ１において、制御部５１０は、無線通信部５５０を介して電子メールを受信すると共に、その電子メールを受信した時刻を示すデータ（以下、「受信時刻データ」と称する）を計時部５４０より取得し揮発性記憶部５７１へ格納する。
【００３４】
無線通信部５５０を介して電子メールを受信した制御部５１０が、ＪＡＭに従って、ＪａｖａＡＰＰを一意に示すプログラム識別子と、そのＪａｖａＡＰＰをサスペンドする原因となった事象を示す事象データとを中断事象テーブルへ書き込み、そのＪａｖａＡＰＰの実行をサスペンドするまでの動作は、上述した動作例１におけるステップＳＣ２およびステップＳＣ３の動作と同一である。但し、本動作例では、中断事象テーブルへ書き込まれる事象データが、電子メールの受信によるサスペンドであることを示すデータ（すなわち“２”）である点のみが異なっている。
【００３５】
以降、制御部５１０は電子メールを受信した旨の報知を行い、メーラソフトウェアを起動することをユーザに促すと共に、所定の時間が経過したか否かを判定する（ステップＳＤ４）。具体的には、制御部５１０は、計時部５４０を介して現在時刻を示すデータを取得し、そのデータの示す時刻と揮発性記憶部５７１に格納されている受信時刻データの示す時刻との差が所定の時間よりも長いか否かを判定する。そして、制御部５１０は、ステップＳＤ４における判定結果が“Ｎｏ”である場合には、ステップＳＤ４の判定を繰り返し実行し、逆に、ステップＳＤ４の判定結果が“Ｙｅｓ”である場合には、上述した動作例１におけるステップＳＣ５およびＳＣ６と同一の動作を行う。但し、本動作例では、ステップＳＣ５にてＪａｖａＡＰＰに内包されているレジュームメソッドを呼び出す際に引渡す事象データの値が“２”である点のみが異なっている。なお、電子メールの受信によりＪａｖａＡＰＰの実行をサスペンドした場合に、所定の時間が経過した否かに基づいて、そのＪａｖａＡＰＰの実行をレジュームする理由は以下の通りである。一般に、電子メールの受信を開始してから、その電子メールの受信を完了するまでに要する時間は無視し得るほど短い。そのため、電子メールの受信が完了した後に、即座に、サスペンドされているＪａｖａＡＰＰの実行をレジュームを行ってしまうと、ユーザは受信した電子メールを閲覧するために、レジュームされたＪａｖａＡＰＰの実行を終了しなければならず、不便だからである。
【００３６】
なお、ＪａｖａＡＰＰに内包されているレジュームメソッドを呼出してからそのＪａｖａＡＰＰのレジュームが完了するまでの制御部５１０の動作は、上述した動作例１におけるステップＳＢ１およびステップＳＢ２の動作と同一である。但し、本動作例では、電子メールの受信によりサスペンドされたことを示す事象データが引渡されるため、スケジュール登録画面の領域３１０には、動作例１とは異なるメッセージが表示される。そのメッセージの一例をしては、「電子メールを受信しました。閲覧しますか？」というメッセージが挙げられる。レジュームメソッドが制御部５１０に実行された結果、端末装置１０の表示部５２０には、図１１に示すスケジュール登録画面が表示されることになる。以降、制御部５１０は、ＪａｖａＡＰＰを構成しているＪａｖａバイトコードに従って図２に示されるフローチャートに従った処理を実行する。
【００３７】
以上に説明したように、本実施形態に係る端末装置によれば、サスペンドせずにＪａｖａＡＰＰを実行している場合と、サスペンドされていたＪａｖａＡＰＰの実行をレジュームする場合とで、異なる画面を表示すると共に、実行をサスペンドする原因となった事象に応じて異なる画面を表示することが可能になる。このため、実行をサスペンドする原因となった音声通話や電子メール受信により、スケジュール変更が必要であるか否かをユーザに確認することを促すといった利便性を向上させたスケジューラ機能を実現するＪａｖａＡＰＰを実行することが可能になる。なお、上述した実施形態では、サスペンドする原因となった事象に応じて異なるメッセージを表示部５２０へ表示させる場合について説明したが、係るメッセージに対応する音声を音声入出力部５６０に放音させるとしても勿論良い。
【００３８】
［Ｃ．変形例］
以上、本発明の実施形態について説明したが、本発明は係る実施形態に限定されるものではなく、その技術思想の範囲内で様々な変形が可能である。なお、変形例としては、例えば、以下のようなものが考えられる。
【００３９】
（変形例１）
上述した実施形態では、ＪａｖａＡＰＰの実行をサスペンドする原因となる事象として、通話呼び出しや、電子メールの受信など端末装置１０のユーザ宛のデータを無線通信部５５０を介して受信した場合について説明した。しかしながら、ＪａｖａＡＰＰの実行をサスペンドする原因となる事象は、係るデータの受信に限定されるものではない。例えば、端末装置１０がＢｌｕｅｔｏｏｔｈ（登録商標）や赤外線通信インターフェイスなどの近距離通信手段を備えている場合には、この近距離通信手段によりデータの送受信を行う場合にも、実行中のＪａｖａＡＰＰをサスペンドするとしても良い。また、実行中のＪａｖａＡＰＰからメーラソフトウェアやブラウザソフトウェアなど他のソフトウェアを呼出し実行する場合にも、実行中のＪａｖａＡＰＰをサスペンドするとしても良い。これは、端末装置１０にアプリケーションプログラムを実行させたままの状態で、他のソフトウェアへの入力操作を行うと、その入力操作が実行中のアプリケーションプログラムへのデータ入力と解釈されてしまうからである。
【００４０】
（変形例２）
上述した実施形態では、ＪａｖａＡＰＰの実行をサスペンドする原因になった事象を示す事象データのみを中断事象テーブルし、この事象データに基づいて異なる動作を端末装置１０に行わせるＪａｖａＡＰＰについて説明した。しかしながら、端末装置１０は、ＪａｖａＡＰＰの実行をサスペンドしてから、そのＪａｖａＡＰＰの実行をレジュームするまでの間に発生した事象毎に、その事象を示す事象データを中断事象テーブルへ格納し、これら複数の事象データに基づいて異なる動作をＪａｖａＡＰＰに従って実行するとしても良い。このようにすると、例えば、ＪａｖａＡＰＰの実行がサスペンドされてから、そのＪａｖａＡＰＰの実行がレジュームされるまでに発生した全ての事象をユーザに通知することが可能になるといった効果を奏する。具体的には、サスペンドされていたＪａｖａＡＰＰの実行がレジュームされる際に、中断事象テーブルに格納されている事象データの個数分だけ、各事象データに応じたメッセージをスケジュール登録画面の領域３１０に表示させることにより実現可能である。
【００４１】
（変形例３）
上述した実施形態では、スケジューラ機能を実現するＪａｖａＡＰＰを一例として利便性を向上させたＪａｖａＡＰＰを実行する場合について説明した。しかしながら、本発明により向上する設計の自由度は、利便性に関する自由度だけではない。例えば、興趣性を向上させたゲーム機能を実現するＪａｖａＡＰＰを実行することも可能である。具体的には、音声通話により実行がサスペンドされた場合に、レジューム後に「電話は終わったね。さー続きをやってみよう」といったメッセージを表示したり、このようなメッセージをゲームキャラクターの台詞として表示するようなＪａｖａＡＰＰを実行することが可能になる。また、ゲームを進展させるためのキーワードデータなどを予めサーバ装置に記憶させておき、ＪａｖａＡＰＰを実行中の端末装置からの要求に基づいて、このキーワードデータを内包した電子メールをその端末装置へ送信する。そして、このような電子メールを受信した場合に、「ゲームを進めるための秘密のキーワードかもしれないよ。さー電子メールを見てみよう」などのメッセージを表示させるようにするなど、更に興趣性を向上させたＪａｖａＡＰＰを実行することも可能である。
【００４２】
（変形例４）
上述した実施形態では、Ｊ２ＭＥに準拠したＪａｖａ実行環境を有する携帯電話機に本発明を適用した場合について説明した。本発明はこの種の携帯電話機に適用された場合に最も顕著な効果を奏する。その理由は、ＪａｖａＡＰＰを実行させている端末装置が、この種の携帯電話機である場合には、通話呼び出しや、電子メールの受信により、ＪａｖａＡＰＰの実行を中断したり、再開したりすることが頻繁に生じ得るためである。しかしながら、本発明の適用対象は係る携帯電話機に限定されるものではない。要は、Ｊａｖａ実行環境を有するコンピュータ装置であれば、ＰＨＳ（Ｐｅｒｓｏｎａｌ  Ｈａｎｄｙｐｈｏｎｅ  Ｓｙｓｔｅｍ：登録商標）端末、ＰＤＡ、パーソナルコンピュータ装置のいずれであっても良い、また、本発明の適用対象となるＪａｖａ実行環境は、Ｊ２ＭＥに準拠したＪａｖａ実行環境に限定されるものではなく、Ｊ２ＳＥ（Ｊａｖａ２  Ｓｔａｎｄａｒｄ  Ｅｄｉｔｉｏｎ）や、Ｊ２ＥＥ（Ｊａｖａ２  Ｅｎｔｅｒｐｒｉｓｅ  Ｅｄｉｔｉｏｎ）に準拠したＪａｖａ実行環境であっても良い。なお、Ｊ２ＳＥとは、パーソナルコンピュータ装置向けに定められてＪａｖａ実行環境の規格であり、Ｊ２ＥＥとは、サーバコンピュータ装置向けに定められたＪａｖａ実行環境の規格である。要は、ＪＡＭに従ってＪａｖａＡＰＰの実行管理を行うＪａｖａ実行環境であれば良い。
【００４３】
また、上述した実施形態では、端末装置１０で実行されるアプリケーションプログラムがＪａｖａＡＰＰである場合について説明した。しかしながら、本発明に係る端末装置で実行されるアプリケーションプログラムは、ＪａｖａＡＰＰに限定されるものではない。例えば、Ｃ＋＋などの他のプログラミング言語で記述されているアプリケーションプログラムであっても良い。但し、このような場合には、上述したＪＡＭに替えて、係るアプリケーションプログラムの実行管理を行うためのソフトウェアを端末装置に記憶させておくことが必要である。
【００４４】
（変形例５）
上述した実施形態では、本発明に係る端末装置に特有な機能を実現するためのＪａｖａ実行環境を構築するためのソフトウェアを端末装置１０に予め記憶させておく場合について説明した。しかしながら、これらのソフトウェアを記録したコンピュータ装置読み取り可能な記録媒体を用いて、これらのソフトウェアを一般的なコンピュータ装置にインストールすることにより、係るコンピュータ装置に端末装置１０と同一の機能を付与することも可能である。
【００４５】
【発明の効果】
本発明によれば、端末装置において発生する事象に応じて異なる動作をその端末装置に行わせるようなアプリケーションプログラムを提供することが可能になり、アプリケーションプログラムを設計し開発する際の自由度が向上するといった効果を奏する。
【図面の簡単な説明】
【図１】本発明に係る端末装置１０を有する通信システムの構成例を示す図である。
【図２】同端末装置１０に記憶されているＪａｖａＡＰＰを実行した場合の端末装置１０の動作の流れを示すフローチャートである。
【図３】同端末装置１０の表示部５２０に表示されるスケジュール登録画面の一例を示す図である。
【図４】同ＪａｖａＡＰＰに内包されているレジュームメソッドを呼出し実行した場合の端末装置１０の動作の流れを示すフローチャートである。
【図５】同端末装置１０の構成例を示す図である。
【図６】同端末装置１０の不揮発性記憶部５７２に格納されている中断事象テーブルのテーブルフォーマットの一例を示す図である。
【図７】同端末装置１０に組み込まれているＪａｖａ実行環境を説明するための図である。
【図８】ＪａｖａＡＰＰを実行中に通話呼び出しされた場合の端末装置１０の動作を説明するためのフローチャートである。
【図９】同端末装置１０の表示部５２０に表示されるスケジュール登録画面の一例を示す図である。
【図１０】ＪａｖａＡＰＰを実行中に電子メールを受信した場合の端末装置１０の動作を説明するためのフローチャートである。
【図１１】同端末装置１０の表示部５２０に表示されるスケジュール登録画面の一例を示す図である。
【符号の説明】
１０…端末装置、２０…移動パケット通信網、２１…基地局、３０…移動電話網、３１…基地局、５１０…制御部、５２０…表示部、５３０…操作部、５４０…計時部、５５０…無線通信部、５６０…音声入出力部、５７０…記憶部、５７１…揮発性記憶部、５７２…不揮発性記憶部、５８０…バス。
【図１】
2004302518.tif 000003
【図２】
2004302518.tif 000004
【図３】
2004302518.tif 000005
【図４】
2004302518.tif 000006
【図５】
2004302518.tif 000007
【図６】
2004302518.tif 000008
【図７】
2004302518.tif 000009
【図８】
2004302518.tif 000010
【図９】
2004302518.tif 000011
【図１０】
2004302518.tif 000012
【図１１】
2004302518.tif 000013