私はMicrosoftの表面上で実行しているWindows 8ストアアプリ(XAML/C#)を作成しました。このアプリは、基本的にセーブボタンを持たないデータ入力アプリケーションです。保存はページ間をジャンプするときやアプリケーションが中断したときに自動的に実行されます。Windows 8 Storeアプリケーションが終了するとデータを保存する
私が捉えることができない1つのシナリオは、ユーザーがアプリケーションを閉じるとき(ユーザーが画面の上から下にスワイプするとき)です。
だから私はApp.Current.Suspendingを購読すると、ここでセーブを呼び出した瞬間に:
App.Current.Suspending += Current_Suspending;
void Current_Suspending(object sender, Windows.ApplicationModel.SuspendingEventArgs e)
{
Save();
}
私はまた、ステートセーブメソッドをオーバーライドして、ここで保存を呼び出します。
protected override void SaveState(Dictionary<string, object> pageState)
{
Save();
base.SaveState(pageState);
}
しかし、これらのnietherをアプリケーションが終了するとメソッドが呼び出されます。
誰かが、アプリケーションが終了したときに発砲するイベントを知っていますか?
おかげ
それは、以下の注意事項が含まれている一番下に
単語の使用は「閉じました」。 Suspendingイベントが実際に発生するかどうかを判断できます。そうでない場合は、正しい方法でイベントにフックしないでください。この記事のように正しい方法でこれを行うのに役立ちます:http://msdn.microsoft.com/en-us/library/windows/apps/hh986968.aspx –
一時停止イベントは、アプリケーションが一時停止しても終了したときに起動しますそれはしません。私が閉じていると言うと、ユーザーが画面を上から下にスワイプしている(またはAlt-F4を押している)ことを意味します。 – Sun
一時停止イベントは、アプリケーションが中断されていない場合にのみ発生します。実際にアプリケーションが閉じられたときに発生するイベントを処理することによって、アプリケーションを永続的に処理する必要があります。 –