2016年02月11日
川俣晶の縁側ソフトウェア技術雑記 total 2956 count

Visual Studioでデバッグ中にアプリのTerminated状態を強制的に発生させる方法

Written By: 川俣 晶連絡先

「UWPのスケルトンで、【//TODO: 以前中断したアプリケーションから状態を読み込みます】という部分を実行させるには、自分でクローズした後で実行しても無駄。状態がe.PreviousExecutionState == ApplicationExecutionState.Terminatedにならないので」

「じゃあどうすれば、その条件を満たせるんだい? 他のアプリをバンバン立ち上げてメモリをいっぱい使えばメモリから消えるのだろう?」

「そんな手間の掛かることはやらなくて良い。デバッグのツールバーにある【ライフサイクルイベント】のドロップダウンを開き、【中断とシャットダウン】でアプリを終了させる。すると次回起動時にアプリは【前回の終了はユーザーによるシャットダウンではない】と認識し、e.PreviousExecutionState == ApplicationExecutionState.Terminatedの条件が成立する。つまりデバッグ実行できる」

「見てきたように語るね。元ネタはどこだよ」

「このへんかな」

感想 §

「やはり、UWPのライフサイクルはめんどくさい」

「分かりにくいとはいわないのだね」

「Win8時代と同じなので」

「でも他に意見がありそうだね」

「実は、Terminated以外の時も状態を読み込んだ方がいいんじゃないかと思わないこともない」

「ユーザーが自分で閉じた場合も、次回起動時に環境を復帰した方が使いやすそうだってことだね」