(57)【要約】【課題】外部装置との間の通信コネクションを通信コネクションの接続状態の管理を適正に行える「コンピュータプログラム、情報処理装置及び処理実行方法」を提供する。【解決手段】オペレーティングシステム１０５は、アプリケーション１１０をバックグランド状態（４０３）に遷移させると（４１４）、アプリケーション１１０にバックグランド遷移通知（４１５）を発行する。このバックグランド遷移通知（４１５）を受け取ったアプリケーション１１０は、管理している外部のアクセサリ装置２との間の通信コネクションが接続中状態である場合には、オペレーティングシステム１０５を介してアクセサリ装置２との間に確立されている通信コネクションを切断し（４３２）、管理している通信コネクションの状態を切断中状態とする。【選択図】図４
2015201784.tif 000002
【特許請求の範囲】
【請求項１】
オペレーティングシステムを備えたコンピュータによって読み取られ実行されるコンピュータプログラムであって、
前記コンピュータプログラムは、前記コンピュータを、前記オペレーティングシステム上で稼働するアプリケーションとして機能させ、
前記オペレーティングシステムは、前記アプリケーションの稼働中、当該アプリケーションの実行状態を、フォアグランドで当該アプリケーションが実行されるフォアグランド状態と、バックグランドで当該アプリケーションが実行されるバックグランド状態と、当該アプリケーションの実行が停止されるサスペンデッド状態の間で遷移させながら制御し、
前記アプリケーションは、
実行状態がフォアグランド状態にあるときに、外部装置との間に確立された通信コネクションを用いて処理を行う通信コネクション利用処理部と、
前記通信コネクションの接続中の有無を表す接続状態情報を保存すると共に、フォアグランド状態にあるときとバックグランド状態にあるときとに発生した前記通信コネクションの接続中の有無の状態の変化に応じて、前記接続状態情報を更新する通信コネクション管理部と、
実行状態がバックグランド状態に遷移したときに、外部装置との間に通信コネクションが接続されている場合に当該通信コネクションを切断する通信コネクション切断部とを有することを特徴とするコンピュータプログラム。
【請求項２】
請求項１記載のコンピュータプログラムであって、
前記アプリケーションは、バックグランド状態で継続的な動作を行うか行わないかが選択的に設定する継続動作有無設定部を有し、
前記アプリケーションの通信コネクション切断部は、
実行状態がバックグランド状態に遷移したときに、当該アプリケーションがバックグランド状態で継続的な動作を行うよう設定されている場合には、外部装置との間に通信コネクションが接続されている場合であっても当該通信コネクションを切断せず、
実行状態がバックグランド状態に遷移したときに、当該アプリケーションがバックグランド状態で継続的な動作を行わないよう設定されており、かつ、外部装置との間に通信コネクションが接続されている場合にのみ当該通信コネクションを切断することを特徴とするコンピュータプログラム。
【請求項３】
請求項１または２記載のコンピュータプログラムであって、
前記アプリケーションは、実行状態がフォアグランド状態に遷移したときに、外部装置との間に通信コネクションが接続されていない場合には、外部装置との間の通信コネクションを接続する通信コネクション接続部を有することを特徴とするコンピュータプログラム。
【請求項４】
外部装置を接続可能な情報処理装置であって、
オペレーティングシステムと、
前記オペレーティングシステム上で稼働するアプリケーションとを備え、
前記オペレーティングシステムは、前記アプリケーションの稼働中、当該アプリケーションの実行状態を、フォアグランドで当該アプリケーションが実行されるフォアグランド状態と、バックグランドで当該アプリケーションが実行されるバックグランド状態と、当該アプリケーションの実行が停止されるサスペンデッド状態の間で遷移させながら制御し、
前記アプリケーションは、
実行状態がフォアグランド状態にあるときに、外部装置との間に確立された通信コネクションを用いて処理を行う通信コネクション利用処理部と、
前記通信コネクションの接続中の有無を表す接続状態情報を保存すると共に、フォアグランド状態にあるときとバックグランド状態にあるときとに発生した前記通信コネクションの接続中の有無の状態の変化に応じて、前記接続状態情報を更新する通信コネクション管理部と、
実行状態がバックグランド状態に遷移したときに、外部装置との間に通信コネクションが接続されている場合に当該通信コネクションを切断する通信コネクション切断部とを有することを特徴とする情報処理装置。
【請求項５】
請求項４記載の情報処理装置であって、
前記アプリケーションは、バックグランド状態で継続的な動作を行うか行わないかが選択的に設定する継続動作有無設定部を有し、
前記アプリケーションの通信コネクション切断部は、
実行状態がバックグランド状態に遷移したときに、当該アプリケーションがバックグランド状態で継続的な動作を行うよう設定されている場合には、外部装置との間に通信コネクションが接続されている場合であっても当該通信コネクションを切断せず、
実行状態がバックグランド状態に遷移したときに、当該アプリケーションがバックグランド状態で継続的な動作を行わないよう設定されており、かつ、外部装置との間に通信コネクションが接続されている場合にのみ当該通信コネクションを切断することを特徴とする情報処理装置。
【請求項６】
請求項４または５記載の情報処理装置であって、
前記アプリケーションは、実行状態がフォアグランド状態に遷移したときに、前記接続状態情報が外部装置との間に通信コネクションが接続されていないことを表している場合に、外部装置との間の通信コネクションを接続する通信コネクション接続部を有することを特徴とする情報処理装置。
【請求項７】
コンピュータのオペレーティングシステム上で稼働するアプリケーションが行う処理実行方法であって、
前記オペレーティングシステムは、前記アプリケーションの稼働中、当該アプリケーションの実行状態を、フォアグランドで当該アプリケーションが実行されるフォアグランド状態と、バックグランドで当該アプリケーションが実行されるバックグランド状態と、当該アプリケーションの実行が停止されるサスペンデッド状態の間で遷移させながら制御し、
当該処理実行方法は、
実行状態がフォアグランド状態にあるときに、外部装置との間に確立された通信コネクションを用いて処理を行う通信コネクション利用処理ステップと、
前記通信コネクションの接続中の有無を表す接続状態情報を保存すると共に、フォアグランド状態にあるときとバックグランド状態にあるときとに発生した前記通信コネクションの接続中の有無の状態の変化に応じて、前記接続状態情報を更新する接続状態情報管理ステップと、
実行状態がバックグランド状態に遷移したときに、外部装置との間に通信コネクションが接続されている場合に当該通信コネクションを切断する通信コネクション切断ステップとを有することを特徴とする処理実行方法。
【請求項８】
請求項７記載の処理実行方法であって、
バックグランド状態で継続的な動作を行うか行わないかが選択的に設定するステップを有し、
前記通信コネクション切断ステップは、実行状態がバックグランド状態に遷移したときに、当該アプリケーションがバックグランド状態で継続的な動作を行うよう設定されている場合には、外部装置との間に通信コネクションが接続されている場合であっても当該通信コネクションを切断せず、実行状態がバックグランド状態に遷移したときに、当該アプリケーションがバックグランド状態で継続的な動作を行わないよう設定されており、かつ、外部装置との間に通信コネクションが接続されている場合には当該通信コネクションを切断するステップであることを特徴とする処理実行方法。
【請求項９】
請求項７または８記載の処理実行方法であって、
実行状態がフォアグランド状態に遷移したときに、前記接続状態情報が外部装置との間に通信コネクションが接続されていないことを表している場合に、外部装置との間の通信コネクションを接続する通信コネクション接続ステップを有することを特徴とする処理実行方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モバイルコンピュータで実行されるアプリケーションにおいて外部装置との通信状態を管理する技術に関するものである。
【背景技術】
【０００２】
マルチタスク機能を備えたモバイルコンピュータのオペレーティングシステムとしては、アプリケーションの実行状態をフォアグランド状態とバックグランド状態とサスペンデッド状態との間で遷移させながら、複数のアプリケーションを動作させるオペレーティングシステムが知られている（たとえば、特許文献１）。
【０００３】
ここで、フォアグランド状態とは、アプリケーションが、ウインドウの表示やユーザ操作の受け付けなどユーザインタフェースを提供しながら処理を行える形態で実行されている状態であり、バックグランド状態とはユーザインタフェースを提供できない形態でアプリケーションが実行されている状態であり、サスペンデッド状態とは、アプリケーションがロードされてはいるものの、そのコードの実行が停止されている状態である。
【０００４】
ここで、フォアグランド状態で実行されるアプリケーションは一つに制限されており、オペレーティングシステムによって各アプリケーションの実行状態をたとえば次のように制御される。
【０００５】
すなわち、ユーザ操作等に応じて、オペレーティングシステムは、フォアグランド状態とするアプリケーションを切り替える。また、オペレーティングシステムは、フォアグランド状態とするアプリケーションを切り替えるときに、それまでフォアグランド状態で実行されていたアプリケーションの実行状態を、バックグランド状態に遷移する。また、オペレーティングシステムは、バックグランド状態で継続した処理を行わないアプリケーションについては、バックグランド状態に遷移させた後、所定期間経過後などの所定の契機で、その実行状態をサスペンデッド状態に遷移する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開2006-209560号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
さて、上述のようにアプリケーションの実行状態をフォアグランド状態とバックグランド状態とサスペンデッド状態との間で遷移させるオペレーティングシステム上で実行されるアプリケーションが、フォアグランド状態において、外部装置との間に接続した通信コネクションを用いて処理を行うものである場合、次のような問題が生じる場合がある。
【０００８】
すなわち、フォアグランド状態で外部装置との間に接続した通信コネクションを用いて処理を行っていたアプリケーションは、フォアグランド状態からバックグランド状態に遷移した後も、通信コネクションの接続状態は維持されるので、そのまま当該通信コネクションの接続状態を接続中として管理する。
【０００９】
そして、その後、アプリケーションがバックグランド状態からサスペンデッド状態に遷移すると、当該アプリケーションはサスペンデッド状態では実行を停止するために、サスペンデッド状態である期間中に当該アプリケーションが管理している当該通信コネクションの接続状態が接続中のまま凍結されることとなる。
【００１０】
一方で、アプリケーションがバックグランド状態からサスペンデッド状態に遷移すると、当該アプリケーションが実質的に非動作状態となったことや、当該アプリケーションが外部装置に対して非動作状態となったこと等に起因して、外部装置やオペレーティングシステムによって当該アプリケーションが使用していた通信コネクションが切断される場合がある。
【００１１】
そして、このような場合、アプリケーションがサスペンデッド状態からバックグランド状態やフォアグランド状態に遷移した直後に、通信コネクションが切断されているにも関わらずに、アプリケーションが通信コネクションの接続状態を接続中として認識する不整合が生じることとなり、当該不整合によってアプリケーションの誤動作が生じることがある。
【００１２】
そこで、本発明は、フォアグランド状態とバックグランド状態とサスペンデッド状態との間で遷移する、フォアグランド状態において外部装置との間の通信コネクションを用いて処理を行うアプリケーションにおいて、通信コネクションの接続状態の管理を適正に行えるようにすることを課題とする。
【課題を解決するための手段】
【００１３】
前記課題達成のために、本発明は、オペレーティングシステムを備えたコンピュータによって読み取られ実行され、前記コンピュータを、前記オペレーティングシステム上で稼働するアプリケーションとして機能させるコンピュータプログラムを提供する。ただし、前記オペレーティングシステムは、前記アプリケーションの稼働中、当該アプリケーションの実行状態を、フォアグランドで当該アプリケーションが実行されるフォアグランド状態と、バックグランドで当該アプリケーションが実行されるバックグランド状態と、当該アプリケーションの実行が停止されるサスペンデッド状態の間で遷移させながら制御するものである。また、前記アプリケーションは、実行状態がフォアグランド状態にあるときに、外部装置との間に確立された通信コネクションを用いて処理を行う通信コネクション利用処理部と、前記通信コネクションの接続中の有無を表す接続状態情報を保存すると共に、フォアグランド状態にあるときとバックグランド状態にあるときとに発生した前記通信コネクションの接続中の有無の状態の変化に応じて、前記接続状態情報を更新する通信コネクション管理部と、実行状態がバックグランド状態に遷移したときに、外部装置との間に通信コネクションが接続されている場合に当該通信コネクションを切断する通信コネクション切断部とを備えたものである。
【００１４】
このようなコンピュータプログラムによるアプリケーションによれば、アプリケーションがバックグランド状態に遷移すると、アプリケーションがサスペンデッド状態に遷移する前に外部装置との間の通信コネクションは必ず切断され、接続状態情報が表す通信コネクションの状態は非接続中に更新される。また、アプリケーションがサスペンデッド状態に遷移するときには、既に通信コネクションは切断されているので、当該サスペンデッド状態の期間中に、当該アプリケーションと外部装置との間の通信コネクションの状態の変更が行われることもない。
【００１５】
よって、サスペンデッド状態からフォアグランド状態に復帰したときに、接続状態情報で管理している通信コネクションの状態と、現実の通信コネクションの状態との間に不整合が生じることが抑止される。
【００１６】
ここで、このようなコンピュータプログラムは、前記アプリケーションに、バックグランド状態で継続的な動作を行うか行わないかが選択的に設定する継続動作有無設定部を備え、前記アプリケーションの通信コネクション切断部において、実行状態がバックグランド状態に遷移したときに、当該アプリケーションがバックグランド状態で継続的な動作を行うよう設定されている場合には、外部装置との間に通信コネクションが接続されている場合であっても当該通信コネクションを切断せず、実行状態がバックグランド状態に遷移したときに、当該アプリケーションがバックグランド状態で継続的な動作を行わないよう設定されており、かつ、外部装置との間に通信コネクションが接続されている場合にのみ当該通信コネクションを切断するように構成してもよい。
【００１７】
このようにすることにより、アプリケーションがバックグランド状態で継続的な動作を行わないために、アプリケーションがサスペンデッド状態に遷移する可能性がある場合、すなわち、外部装置との間の通信コネクションを切断しないと、接続状態情報で管理している通信コネクションの状態と現実の通信コネクションの状態との間に不整合が生じる可能性がある場合のみ、外部装置との間の通信コネクションを切断することができる。
【００１８】
また、このようなコンピュータプログラムにおいて、前記アプリケーションは、実行状態がフォアグランド状態に遷移したときに、前記接続状態情報が外部装置との間に通信コネクションが接続されていないことを表している場合に、外部装置との間の通信コネクションを接続する通信コネクション接続部を備えていてもよい。
【００１９】
ここで、前記課題達成のために、本発明は、以上のようなコンピュータプログラムによるアプリケーションを備えた情報処理装置や、以上のようなコンピュータプログラムによるアプリケーションの処理実行方法も併せて提供する。
【発明の効果】
【００２０】
以上のように、本発明によれば、フォアグランド状態とバックグランド状態とサスペンデッド状態との間で遷移する、フォアグランド状態において外部装置との間の通信コネクションを用いて処理を行うアプリケーションにおいて、通信コネクションの接続状態の管理を適正に行えるようになる。
【図面の簡単な説明】
【００２１】
【図１】本発明の実施形態に係るモバイル装置の構成を示すブロック図である。
【図２】本発明の実施形態に係るアプリケーションの状態遷移例を示す図である。
【図３】本発明の実施形態に係るバックグランド移行準備処理を示すフローチャートである。
【図４】本発明の実施形態に係るアプリケーションの動作例を示す図である。
【図５】本発明の実施形態に係るバックグランド移行準備処理の他の例を示すフローチャートである。
【発明を実施するための形態】
【００２２】
以下、本発明の実施形態について説明する。
図１に本実施形態に係るモバイル装置の構成を示す。
図示するように、モバイル装置１は入力装置１０１、表示装置１０２、マイクやスピーカなどを備えた音声入出力装置１０３、外部のアクセサリ装置２を接続可能な外部インタフェース１０４、オペレーティングシステム１０５、外部記憶装置として機能する記憶装置１０６、主記憶装置として機能するメモリ１０７、移動通信網に接続するための移動通信装置１０８、その他の周辺装置１０９、オペレーティングシステム１０５上で稼働する各種のアプリケーション１１０とを備えている。
【００２３】
ここで、外部インタフェース１０４は、USBなどの有線通信インタフェースや、Bluetooth(登録商標)やWi-Fi（IEE802.11シリーズ）などの無線通信インタフェースで外部のアクセサリ装置２と接続するインタフェース装置である。
【００２４】
また、モバイル装置１は、上述したアプリケーション１１０として、移動通信装置１０８や音声入出力装置１０３や入力装置１０３を用いた移動電話機能を提供する移動電話アプリケーションや、外部インタフェース１０４に接続されたアクセサリ装置２をリモート制御するためのリモート制御アプリケーションなどを備えている。
【００２５】
なお、モバイル装置１は、スマートフォンやタブレット装置などの携帯型の装置である。また、モバイル装置１は、ハードウエア的には、ＣＰＵやメモリ１０７などを備えたコンピュータを用いて構成されるものあり、オペレーティングシステム１０５や、アプリケーション１１０などは、当該コンピュータが、所定のコンピュータプログラムを実行することにより実現されるものである。また、アプリケーション１１０の実行は、オペレーティングシステム１０５の制御下で、記憶装置１０６に記憶された当該アプリケーション１１０のコンピュータプログラムをメモリ１０７にロードして実行することにより実現される。
【００２６】
次に、このようなモバイル装置１におけるオペレーティングシステム１０５のアプリケーション１１０の実行の制御について説明する。
オペレーティングシステム１０５は、マルチタスキングによって複数のアプリケーション１１０の実行を制御するオペレーティングシステム１０５であり、アプリケーション１１０を非動作状態、フォアグランド状態とバックグランド状態とサスペンデッド状態との間で遷移させながら、複数のアプリケーション１１０の実行を制御する。
【００２７】
ここで、非動作状態とはアプリケーション１１０が起動されていない状態であり非動作状態においてアプリケーション１１０はメモリ１０７にロードされていない。また、フォアグランド状態とは、メモリ１０７にロードされたアプリケーション１１０が、ウインドウの表示やユーザ操作の受け付けなどのユーザインタフェースを提供しながら処理を行える形態で実行されている状態であり、バックグランド状態とは、メモリ１０７にロードされたアプリケーション１１０がユーザインタフェースを提供できない形態で実行されている状態であり、サスペンデッド状態とは、アプリケーション１１０がメモリ１０７にロードされてはいるものの、そのコードの実行が停止されている状態である。
【００２８】
ここで、フォアグランド状態で実行されるアプリケーション１１０は一つに制限されており、オペレーティングシステム１０５によって各アプリケーション１１０の実行状態をたとえば次のように制御される。
【００２９】
すなわち、図２に示すように、非動作状態のアプリケーション１１０をユーザが起動すると、当該アプリケーション１１０は非動作状態からフォアグランド状態に遷移し動作を開始する。
【００３０】
そして、ユーザ操作等に応じて、オペレーティングシステム１０５が、フォアグランド状態とするアプリケーション１１０を他のアプリケーション１１０に切り替えるときや、モバイル装置１をスリープ状態に制御するときには、それまでフォアグランド状態で実行されていたアプリケーション１１０の実行状態はオペレーティングシステム１０５によってバックグランド状態に遷移させられる。
【００３１】
そして、オペレーティングシステム１０５は、バックグランド状態で継続した処理を行わないアプリケーション１１０については、バックグランド状態に遷移させた後、所定期間経過後などの所定の契機で実行状態をサスペンデッド状態に遷移する。一方、オペレーティングシステム１０５は、バックグランド状態で継続した処理を行わないアプリケーション１１０については、サスペンデッド状態への遷移は行わない。
【００３２】
また、オペレーティングシステム１０５は、モバイル装置１のメモリ１０７などのリソースが不足した場合には、サスペンデッド状態に遷移したアプリケーション１１０を非動作状態とし、アプリケーション１１０が使用していたメモリ１０７などのリソースを解放する。
【００３３】
一方、オペレーティングシステム１０５は、ユーザ操作等により、サスペンデッド状態にあるアプリケーション１１０のフォアグランド状態化の要求が発生すると、サスペンデッド状態にあるアプリケーション１１０をバックグランド状態とした後にフォアグランド状態化する。ただし、オペレーティングシステム１０５は、ユーザ操作等により、サスペンデッド状態にあるアプリケーション１１０のフォアグランド状態化の要求が発生すると、サスペンデッド状態にあるアプリケーション１１０を、直接、フォアグランド状態化するものであってもよい。
【００３４】
また、オペレーティングシステム１０５は、バックグランド状態で継続した処理を行うアプリケーション１１０については、バックグランド状態に遷移させた後、サスペンデッド状態には遷移させずにバックグランド状態を維持し、ユーザ操作等により、バックグランド状態にあるアプリケーション１１０のフォアグランド状態化の要求が発生すると、バックグランド状態にあるアプリケーション１１０をフォアグランド状態に復帰する。
【００３５】
以下、このようなモバイル装置１において、フォアグランド状態において外部インタフェース１０４に接続されたアクセサリ装置２との間に接続された通信コネクションを用いて処理を行うと共に、バックグランド状態で継続した処理を行わないアプリケーション１１０が、バックグランド状態に遷移したときに行うバックグランド移行準備処理について説明する。
【００３６】
ここで、このバックグランド移行準備処理は、オペレーティングシステム１０５がバックグランド状態に遷移したアプリケーション１１０に発行するバックグランド遷移通知を受信したときに、アプリケーション１１０が行う処理である。より具体的には、バックグランド遷移通知により呼び出されるアプリケーション１１０のメソッドにより、このバックグランド移行準備処理が実行される。
【００３７】
図３に、バックグランド状態で継続した処理を行わないアプリケーション１１０が行うバックグランド移行準備処理の手順を示す。
図示するように、この処理では、まず、アプリケーション１１０とアクセサリ装置２との間の通信コネクションが接続中であるかどうかを調べる（ステップ３０２）。
そして、アクセサリ装置２と通信コネクションが接続中でなければ、アプリケーション１１０の各種設定、状態の保存、使用していないメモリ領域の解放などの、バックグランド状態への移行の準備処処理を行って（ステップ３０６）、処理を終了する。
【００３８】
一方、アクセサリ装置２と通信コネクションが接続中である場合には（ステップ３０２）、まず、オペレーティングシステム１０５を介して、アクセサリ装置２と通信コネクションを切断する（ステップ３０４）。そして、アプリケーション１１０の各種設定や状態の保存、使用していないメモリ領域の解放などの、その他のバックグランド状態への移行の準備処処理を行って（ステップ３０６）、処理を終了する。
【００３９】
以上、アプリケーション１１０が行うバックグランド移行準備処理について説明した。
以下、このようなバックグランド移行準備処理を行うアプリケーション１１０の動作例を図４を用いて説明する。
図示するように、ユーザが非動作状態（４０１）のアプリケーション１１０の起動を指示すると、オペレーティングシステム１０５によって、当該アプリケーション１１０は起動されフォアグランド状態（４０２）に遷移する（４１１）。また、オペレーティングシステム１０５からアプリケーション１１０に起動通知（４１２）が発行される。
【００４０】
次に、フォアグランド状態（４０２）に遷移し、起動通知（４１２）を受け取ったアプリケーション１１０は、接続状態情報として管理している通信コネクションの状態の初期値は切断中状態であるので、オペレーティングシステム１０５を介してアクセサリ装置２との間の通信コネクションを確立する処理を行い（４３１）、通信コネクションが確立したならば、接続状態情報として管理している通信コネクションの状態を接続中状態とすると共に、当該通信コネクションを介したアクセサリ装置２との通信を利用した所定の処理を開始する。
【００４１】
なお、アクセサリ装置２とアプリケーション１１０との間の通信コネクションの確立は、アプリケーション１１０のフォアグランド状態の遷移時に、オペレーティングシステム１０５とアクセサリ装置２によって起動され行われるものとしてもよい。すなわち、たとえば、アプリケーション１１０がフォアグランド状態に遷移したときに、オペレーティングシステム１０５からアクセサリ装置２にアプリケーション１１０の起動を通知し、起動を通知されたアクセサリ装置２がアプリケーション１１０との間の通信コネクションを確立する処理をオペレーティングシステム１０５やアプリケーション１１０との間で行って通信コネクションを確立するようにしてもよい。
【００４２】
そして、その後、ユーザ操作等に応じて、オペレーティングシステム１０５が、フォアグランド状態とするアプリケーション１１０を他のアプリケーション１１０に切り替えるときや、モバイル装置１をスリープ状態に制御するときには、まず、オペレーティングシステム１０５によって、フォアグランド状態（４０２）にあるアプリケーション１１０に、バックグランド遷移予告（４１３）が通知される。
【００４３】
そして、その後、オペレーティングシステム１０５は、アプリケーション１１０をバックグランド状態（４０３）に遷移し（４１４）、アプリケーション１１０にバックグランド遷移通知（４１５）を発行する。
【００４４】
ここで、このバックグランド遷移通知（４１５）を受け取ったアプリケーション１１０は上述のようにバックグランド移行準備処理を実行し、当該時点で管理している通信コネクションの状態が接続中状態であるので、オペレーティングシステム１０５を介してアクセサリ装置２との間に確立されている通信コネクションを切断し（４３２）、接続状態情報として管理している通信コネクションの状態を切断中状態とする。
【００４５】
そして、その後、オペレーティングシステム１０５は、所定期間経過後などの所定の契機でアプリケーション１１０をサスペンデッド状態（４０４）に遷移する（４１６）。ここで、アプリケーション１１０は、サスペンデッド状態（４０４）への遷移に先だって、アプリケーション１１０にサスペンデッド状態への予告を発行することはない。
【００４６】
そして、アプリケーション１１０がサスペンデッド状態（４０４）にあるときに、ユーザ操作等によりアプリケーション１１０のフォアグランド状態化の要求が発生すると、オペレーティングシステム１０５は、サスペンデッド状態（４０４）にあるアプリケーション１１０をバックグランド状態（４０５）に遷移させ（４１７）、アプリケーション１１０にバックグランド起動通知（４１８）を発行する。
【００４７】
そして、オペレーティングシステム１０５は、バックグランド状態（４０５）にあるアプリケーション１１０に、フォアグランド遷移予告（４１９）を通知した後に、アプリケーション１１０をフォアグランド状態（４０６）に遷移させ（４２０）、フォアグランド遷移通知（４２１）をアプリケーション１１０に通知する。
【００４８】
フォアグランド状態（４０６）に遷移し、フォアグランド遷移通知（４２１）を受け取ったアプリケーション１１０は、当該時点で管理している通信コネクションの状態が切断中状態であるので、上述のように、オペレーティングシステム１０５を介してアクセサリ装置２との間の通信コネクションを確立する処理を行い（４３２）、通信コネクションが確立したならば、接続状態情報として管理している通信コネクションの状態を接続中状態とすると共に、当該通信コネクションを介したアクセサリ装置２との通信を利用した所定の処理を開始する。
【００４９】
なお、アプリケーション１１０は、バックグランド遷移通知以外の、オペレーティングシステム１０５からの上述した各種通知を受け取ったときにも、通知に応じた所定の処理を行う。より具体的には、当該通知によってオペレーティングシステム１０５が呼び出したアプリケーション１１０のメソッドに定義されている処理を行う。
【００５０】
以上、本発明の実施形態について説明した。
以上のように本実施形態によれば、アプリケーション１１０がバックグランド状態に遷移すると、アプリケーション１１０がサスペンデッド状態に遷移する前にアクセサリ装置２との間の通信コネクションは必ず切断され、接続状態情報が表す通信コネクションの状態は非接続中に更新される。また、アプリケーション１１０がサスペンデッド状態に遷移するときには、既に通信コネクションは切断されているので、当該サスペンデッド状態の期間中に、当該アプリケーション１１０とアクセサリ装置２との間の通信コネクションの状態の変更が行われることもない。
【００５１】
よって、サスペンデッド状態からフォアグランド状態に復帰したときに、接続状態情報で管理している通信コネクションの状態と、現実の通信コネクションの状態との間に不整合が生じることが抑止される。
【００５２】
なお、以上の実施形態は、フォアグランド状態での動作状態やユーザの設定等に応じて、バックグランド状態で継続した処理を行うか行わないかが選択的に設定されるアプリケーション１１０においては、バックグランド移行準備処理を図５に示すように行うようにしてもよい。なお、オペレーティングシステム１０５は、バックグランド状態で継続した処理を行うアプリケーション１１０については、その実行状態は、バックグランド状態からサスペンデッド状態に遷移しない。また、オペレーティングシステム１０５におけるバックグランド状態で継続した処理を行うアプリケーション１１０の識別は、たとえば、アプリケーション１１０からオペレーティングシステム１０５に、バックグランド状態で継続した処理を行うアプリケーション１１０が、バックグランド状態で継続した処理を行うアプリケーション１１０である旨を宣言すること等より行うことができる。
【００５３】
さて、図５に示したバックグランド移行準備処理では、まず、アプリケーション１１０はバックグランド状態で継続した処理を行うよう設定されているかどうかを調べる（ステップ５０２）。
【００５４】
そして、バックグランド状態で継続した処理を行うよう設定されている場合には（ステップ５０２）、アプリケーション１１０の各種設定や状態の保存、使用していないメモリ領域の解放などの、バックグランド状態への移行の準備処処理を行って（ステップ５０８）、処理を終了する。
【００５５】
一方、バックグランド状態で継続した処理を行うよう設定されていない場合には（ステップ５０２）、次に、アクセサリ装置２と通信コネクションが接続中であるかどうかを調べる（ステップ５０４）。
【００５６】
そして、アクセサリ装置２と通信コネクションが接続中でなければ（ステップ５０４）、アプリケーション１１０の各種設定や状態の保存、使用していないメモリ領域の解放などの、バックグランド状態への移行の準備処処理を行って（ステップ５０８）、処理を終了する。
【００５７】
一方、アクセサリ装置２と通信コネクションが接続中である場合には（ステップ５０４）、まず、オペレーティングシステム１０５を介して、アクセサリ装置２と通信コネクションを切断する（ステップ５０６）。そして、アプリケーション１１０の各種設定や状態の保存、使用していないメモリ領域の解放などの、その他のバックグランド状態への移行の準備処処理を行って（ステップ５０８）、処理を終了する。
【００５８】
図５のようにバックグランド移行準備処理を行うことにより、アプリケーション１１０がバックグランド状態で継続的な動作を行わないために、アプリケーション１１０がサスペンデッド状態に遷移する可能性がある場合、すなわち、アクセサリ装置２との間の通信コネクションを切断しないと、接続状態情報で管理している通信コネクションの状態と現実の通信コネクションの状態との間に不整合が生じる可能性がある場合のみ、外部装置との間の通信コネクションを切断するようにすることができる。
【符号の説明】
【００５９】
１…モバイル装置、２…アクセサリ装置、１０１…入力装置、１０２…表示装置、１０３…音声入出力装置、１０４…外部インタフェース、１０５…オペレーティングシステム、１０６…記憶装置、１０７…メモリ、１０８…移動通信装置、１０９…周辺装置、１１０…アプリケーション。
【図１】
2015201784.tif 000003
【図２】
2015201784.tif 000004
【図３】
2015201784.tif 000005
【図４】
2015201784.tif 000006
【図５】
2015201784.tif 000007