2011-09-11 15 views
2

WP7にいくつかのテキストボックスを含むページがあります。バックキーを押すと、この方法は、内容を保存するために実行されます。終了時のWP7実行方法

protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e) 
    { 
     var settings = IsolatedStorageSettings.ApplicationSettings; 

     settings["remZone"] = txtBoxZone.Text; 
     settings["remSpace"] = txtBoxSpace.Text; 
    } 

問題は内容が保存されないので、一部のユーザーは、[戻る]ボタンを押していないだろうが、アプリを終了するには、ホームボタンを押しますです。

可能であれば、これには2つの方法があります。 1. onBackKeyPressのように、ホームボタンが押されたときにこのメソッドを実行する関数はありますか? 2.テキストボックスの内容を保存する簡単な方法はありますか?

ありがとうございました。

EDIT:OnExiting呼ば上書きすることができ、ゲーム内のメソッドがあり

protected override void OnNavigatingFrom(NavigatingCancelEventArgs e) 
    { 
     var settings = IsolatedStorageSettings.ApplicationSettings; 

     settings["remZone"] = txtBoxZone.Text; 
     settings["remSpace"] = txtBoxSpace.Text; 
    } 

答えて

5

最も簡単な解決策はPage.OnNavigatingFromの方法を無効にすることです。

more here

+0

ありがとう、これは私が実際に探していたものでした! –

-1

ソリューションは、これでした。

ちょうどそれを無効にして、あなたがそれにしたいですか?

http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.game.onexiting.aspx

編集:私はちょうどあなたはおそらくSilverlightを使用していることに気づきました。その場合this couldがあなたのニーズに合っている可能性があります

+0

こんにちは、あなたの答えをありがとう、はい、それは銀色ベースです。 ExitEventArgsがWindows Phoneに存在するかどうかわからないので、代替ソリューションを試しましたか? –

1

Backpressは、それは、あなたのアプリがどのような方法で画面消灯時はいつでも呼び出されることが保証され、App.Deactivatedイベントもあります、あなたが受け取る唯一のイベントではありません。

ページ(.ctorまたはLoadedイベントハンドラのいずれか)で、そのイベントにハンドラをアタッチし、そのハンドラでは、閉じたときに格納する必要があるすべてを収集します。これが蒸発しないことを確認する最も簡単な方法です。 を覚えておいてください。そのハンドラをPage.Unloadedにリンクすると、メモリ/リソースが大幅にリークします。

BTW。コード

var settings = IsolatedStorageSettings.ApplicationSettings; 

settings["remZone"] = txtBoxZone.Text; 
settings["remSpace"] = txtBoxSpace.Text; 

は、場合によっては不十分です。あなたが本当にあなたの設定が永続化されることを確認する必要がある場合は、手動で変更した後、保存を()を呼び出す必要があります:

var settings = IsolatedStorageSettings.ApplicationSettings; 

settings["remZone"] = txtBoxZone.Text; 
settings["remSpace"] = txtBoxSpace.Text; 

settings.Save(); // think about it, you may want it! 

設定は、いくつかの特定の場面で保存されているため、これは、アプリケーションのように終了し、ツームストーンなど私はそれらが非活性化時に保存されていることを覚えていないので、Backを押すだけでそれらをISOに保存できないかもしれません。さらに、設定してアプリがクラッシュした場合(例外的に処理されないなど)、バッテリー/電源が落ちた場合、またはユーザーが電話を単にオフにした場合、それらは保存されません。

関連する問題