SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

UWPアプリ開発の最前線

UWPアプリの自動起動/再起動/事前起動/コマンドラインから起動/終了キャンセル
~コードからアプリの起動と終了を制御する

UWPアプリ開発の最前線 第12回


  • X ポスト
  • このエントリーをはてなブックマークに追加

UWPアプリを事前起動する

事前起動したサンプルアプリ
事前起動したサンプルアプリ(デバッグ実行)
事前起動された時刻と、その後でユーザーに起動された時刻が右上に表示されている
  • アプリの初期化処理の一部を事前に実行しておけます
  • 実際に事前起動するかどうかは、Windowsがシステムリソースの空きを見て決定します
  • Windows 10 version 1607(build 14393)から利用可能

 事前起動によって、UWPアプリの起動が高速化されます。事前起動は、最初にWindows 10 version 1511で搭載されました。そのときは、全てのUWPアプリが事前起動の対象でした。Windows 10 version 1607からは、要求したアプリだけが事前起動の対象に変わりました。

 事前起動されたアプリは、すぐに中断状態にされます。事前起動時はバックグラウンドで処理されるため、画面を表示することはできません。事前起動時には、フレームの作成と短時間で終わる初期化処理を行えます。事前起動されたアプリは、ユーザーがスタート画面のタイルをクリックするなどしたときにリジュームされ、再びOnLaunchedメソッド(Appクラス)が呼び出されます。

事前起動を要求する

 事前起動を要求するには、CoreApplicationクラス(Windows.ApplicationModel.Core名前空間)のEnablePrelaunch静的メソッドを呼び出します。呼び出す場所はどこでもよいのですが、次のコードのようにするとよいでしょう。OnLaunchedメソッドに渡される引数のPrelaunchActivatedプロパティで、事前起動かどうかを判定できます。

事前起動を要求する(App.xaml.cs
protected override void OnLaunched(LaunchActivatedEventArgs e)
{
  // 次の行は事前起動時にも本番起動時にも実行される
  Frame rootFrame = Window.Current.Content as Frame;

  if (rootFrame == null)
  {
    // ここは事前起動時に実行される
    // (その後の本番起動時にはrootFrameが存在するので、実行されない)
    rootFrame = new Frame();
    Window.Current.Content = rootFrame;

    // そのほか、事前起動時に実行したい処理があればここで
  }
  if (e.PrelaunchActivated == false)
  {
    // ここは本番起動のときだけ実行される

    // 事前起動を要求する
    CoreApplication.EnablePrelaunch(true);

    if (rootFrame.Content == null)
    {
      rootFrame.Navigate(typeof(MainPage), e.Arguments);
    }
    Window.Current.Activate();
  }
}

事前起動をデバッグする

 事前起動をデバッグするには、Visual Studio 2017ではメニューの[デバッグ]-[その他のデバッグ ターゲット]-[ユニバーサル Windows アプリ事前起動のデバッグ]を使います(次の画像)。

 このメニューを選ぶとデバッグ実行が始まり、PrelaunchActivatedプロパティがtrueの状態でOnLaunchedメソッドが呼び出されます。デバッグ実行を進めて、OnLaunchedメソッドを抜けた後でスタート画面のタイルをクリックすると、引き続き本番起動のデバッグができます。

事前起動をデバッグするメニュー
事前起動をデバッグするメニュー

次のページ
UWPアプリをコマンドラインから起動できるようにする

関連リンク

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
UWPアプリ開発の最前線連載記事一覧

もっと読む

この記事の著者

biac(ばいあっく)

HONDA R&Dで自動車の設計をやっていた機械屋さんが、技術の進化スピードに魅かれてプログラマーに。以来30年ほど、より良いコードをどうやったら作れるか、模索の人生。わんくま同盟の勉強会(名古屋)で、よく喋ってたりする。2014/10~2019/6 Microsoft MVP (Windows Devel...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/11325 2019/07/22 18:45

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング