Windows Phone と Windows ストアアプリのライフサイクルの違い

#wpdev_jp #win8dev_jp

Windows Phone と Windows ストアアプリ の挙動は非常によく似ています。

シングル起動でフルスクリーン起動(ストアアプリにはスナップがありますが)、そして背面に回るとアプリケーションが停止し、場合によっては終了するという動きです。

しかし、この動きは完全に同じというわけではありません。

Windows Phone のライフサイクル

こちらは、おなじみの Windows Phone のライフサイクルです。

特徴的なのは退避(Tombstoned)状態があるということです。背面に回ったアプリケーションは プラットフォームの状態に応じて、退避状態になる可能性があります。更に状況に応じてアプリケーションが終了する場合もあります。ただし、通常開発者から見たライフサイクルではそれを確認することも意識することもできません。ですので、あくまで知識として覚えておくにとどめておく程度でよいでしょう。

image

Windows ストアアプリのライフサイクル

こちらは、Windows ストアアプリのライフサイクルです。

実際にそれほど大きな義骸があるわけではありません。Windows Phone との表面的な違いは、イベントとそのハンドラーの名前空間が違うことくらい。状態がシンプルなのは、アプリケーションの動作モデルが若干Windows Phone と異なる点と、フットプリントやリソース、そしてCPUのパフォーマンスの違いによるものでしょう。尚、Resuimg は既定のプロジェクトには実装されていないので、必要に応じて App.xaml.cs などに自分で実装します。

image

結局大きな違いはない

image

ですので、違いはありますが、基本的には以下の処理を実装してやればどちらも同じように動きます。

  1. 起動時の処理
  2. 背面に回った時の処理(データ退避等)
  3. 背面から復帰した時の処理(データの復帰等)

いつかはこの2つが1つになるんでしょうね ♪