« 【青空文庫リーダー・ライト】全集をスタート画面に! #win8jp | トップページ | 【Windows ストア アプリ開発】スクリーンショットの 1枚目は、何でもアリ!? #win8dev_jp »

2014年3月 4日 (火)

【Windows 8.1】 Windows ストア アプリの「閉じる」と「終了させる」

「ウィンドウを閉じればアプリは終了する」

デスクトップ アプリでのこの常識は、 Windows ストア アプリでは通用しません。
Windows ストア アプリでは、 「閉じる」(close) と「終了させる」(terminate) が区別されます。

※ というか、 デスクトップ アプリでも [閉じる] では終了しないアプリがありますね。 Bing デスクトップとかw
20140303_bingdesktop01

さて、 Windows 8.1 の Windows ストア アプリでは、 アプリを見えなくするのに 2通りの方法があります。

★ 閉じる
上端から下端までドラッグする
・左端からスワイプして戻すと出てくる「最近使ったアプリの一覧」で右クリックして [閉じる] (タッチでは下方にスワイプして外へ「捨てる」)

20140304_closeapp02
※ この Web ページで、 「アプリをバックグラウンドで動作させておき」 と MS 自身が間違ったことを書いています。 正しくは、 「アプリの状態をバックグラウンドで保持しておき」 とでもいうべき。

20140304_closeapp03

なお、 Windows 8 では、 上端から下端までのドラッグは「閉じる」ではなく「終了させる」でした。

★ 終了させる
Alt + F4
上端から下端近くまでドラッグしてしばらく待って反転したら捨てる
・タスクマネージャーで選択して [タスクの終了] ボタン

どちらも、 左端からスワイプして戻すと出てくる「最近使ったアプリの一覧」や Ctrl + Alt + Tab キーで出てくるタスクリスト(?)からは消えて、 見えなくます。
しかし、 閉じただけでは、 しばらく生き残っていることがタスクマネージャーで確認できます。

20140304_closeapp04
※この画像では、 アプリの一覧に表示される Windows ストア アプリは 1つだけだが、 タスクマネージャーで見ると 9アプリある。

 
◆ 閉じたあと、 終了していない Windows ストア アプリは何をしているのか?

何もしていません。

閉じられた後、 数秒間の間に現状を再現するためのデータを保存します。
その後は何もせず、 ひたすらユーザーが再開してくれるのを待機しています。
待機中は、 CPU をまったく使いません。 いわば仮死状態ですね。 凍結されているといってもいいでしょう。 ですから、 ネットワークのアクセスも、 ハードディスクの読み書きも一切しません (というか、 したくても出来ないように制限されています)。

※ このあたりの技術的に詳しい話は、 MSDN 「アプリケーションのライフサイクル (Windows ストア アプリ)」を参照
※ 筆者も開発者向けに記事を書きました ⇒ @IT 「Metroスタイル・アプリの開発者が知るべき3つのこと

 
◆ 閉じたあと、 終了していない Windows ストア アプリは何時まで生き残っているのか?

メモリーの空きが少なくなってきたら、 自動的に終了されます。
Windows を再起動するときにも、 自動的に終了されます。

 
◆ なんでそんな仕組みになっているのか?

次にアプリが呼び出されたときに、 ただちに前回の続きを実行するためです。

閉じる:
閉じたあと終了していない Windows ストア アプリは、 瞬時に実行を再開します。
閉じた後、 自動的に終了されたアプリは、 通常通り起動した後で、 閉じる前の状態を再現します (再現しないアプリもあります)。

終了させる:
それに対して、ユーザーが終了させた場合は、 通常通り起動するだけです。

以上をまとめると、Windows ストア アプリの状態の変化は次の図のようになります。
20140419_lifecycle01

 
◆ 「閉じる」と「終了させる」の使い分け

この仕組みが分かると、 「閉じる」と「終了させる」の使い分けもできますね。

★ 閉じる
しばらく使わないので「最近使ったアプリの一覧」からは消えていてほしい時

★ 終了させる
アプリに不具合が起きたなどの理由により、 アプリを初期状態で再起動したい時

※ なお、 閉じた直後にスタート画面で同じアプリのタイルをタップすると、 アプリは再起動 (終了された後、 初期状態で起動) されます。
※ アプリが無応答になったときは、 しばらく放置しておくとシステムが介入して自動的に終了されます。

 
さて。
この 4月にリリースされるという噂の Windows 8.1 Update 1 では、 マウス操作で上端にタイトルバーと下端にタスクバーが出せるようになるようです (次の画像はリークされたタイトルバー)。
20140304_closeapp05
そこにある [X] ボタン / [Close] メニューの役割は、 「閉じる」と「終了させる」のどちらでしょうね?
※ [2014/4 追記] もちろん、「閉じる」でした。

|

« 【青空文庫リーダー・ライト】全集をスタート画面に! #win8jp | トップページ | 【Windows ストア アプリ開発】スクリーンショットの 1枚目は、何でもアリ!? #win8dev_jp »

-PC・インターネット ( Windows 8 )」カテゴリの記事

PC・インターネット」カテゴリの記事

コメント

goodhistory さん、コメントありがとうございます。

回答は MSDN フォーラムの方にさせていただきました。
http://social.msdn.microsoft.com/Forums/ja-JP/94aca8db-bdf4-4b80-94bd-f15b797c1407/windows81?forum=winstoreapp
※ MSDN フォーラムの時刻表示は GMT (9時間ズレています)

こちらのコメントに気付くのが遅れてすみません (なにしろ、スパムコメントばかりが毎日いくつも付くものでして)。

投稿: biac | 2014年6月30日 (月) 09時14分

【Windows 8.1】 Windows ストア アプリの「閉じる」と「終了させる」を拝見しました、Google検索でこのサイトにたどり着きましたが大変参考になりました。どうも有り難うございます。

大変不躾な要望で恐縮ですが、この記事を見させていただいたうえで、よくわからないことがありましたので、以下に質問を記載させていただきます。他にも同様の疑問を持たれる方もいらっしゃるかもしれませんので、可能でしたら、この点についてのお答えを記事に反映していただければ、大変助かります。
-----------------------
アプリの画面上部から下部にスワイプさせて"閉じる"と、Win8では”終了”しますが、Win8.1では”中断”になります。

スタート画面に移動したり、他アプリに切替えて"中断"した場合は、画面左側からスワイプして戻すと表示される「最近使ったアプリの一覧」から"再開"できますが、"閉じる"で"中断"すると、「最近使ったアプリの一覧」にはアプリが表示されないので、"再開"するには、タスクマネージャーでプロセスの切替を行うという面倒な方法しかないのでしょうか?

また、Windows8.1Updateでは、ストアアプリにおいてマウス操作で上端にタイトルバー [X] ボタンがでますが、この[X] ボタンで"閉じる"と"中断"になります。デスクトップアプリの [X] ボタンは"終了"であることが多いので、誤解や混乱を招くと思われます。

"閉じる"を"終了"にする、もしくは"中断"にするなら「最近使ったアプリの一覧」から"再開"できるようにするべきだと、マイクロソフト社にお願いしたい気分なのですが…
-----------------------

もしよろしければ、お答えいただければ大変助かります。

投稿: goodhistory | 2014年6月27日 (金) 08時38分

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: 【Windows 8.1】 Windows ストア アプリの「閉じる」と「終了させる」:

« 【青空文庫リーダー・ライト】全集をスタート画面に! #win8jp | トップページ | 【Windows ストア アプリ開発】スクリーンショットの 1枚目は、何でもアリ!? #win8dev_jp »