C# WP7退出时的运行方法

C# WP7退出时的运行方法,c#,.net,windows-phone-7,isolatedstorage,C#,.net,Windows Phone 7,Isolatedstorage,我的WP7中有一个包含一些文本框的页面。按下后退键时,运行此方法以保存内容: protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e) { var settings = IsolatedStorageSettings.ApplicationSettings; settings["remZone"] = txtBoxZone.Text;

我的WP7中有一个包含一些文本框的页面。按下后退键时,运行此方法以保存内容:

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

        settings["remZone"] = txtBoxZone.Text;
        settings["remSpace"] = txtBoxSpace.Text;
    }
问题是一些用户不会按“后退”按钮,而是会按“主页”按钮退出应用程序,因此不会保存内容

如果可能的话,我认为有两条途径: 1.当按下home(主页)按钮时,是否有运行此方法的功能,如onBackKeyPress。 2.当用户输入文本框时,是否有一种简单的方法保存文本框的内容

谢谢

编辑:

解决办法是:

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

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

解决问题的最简单方法是重写
Page.on导航from
方法


解决问题的最简单方法是覆盖
页面.on导航from
方法


Backpress不是您收到的唯一事件,还有一个App.Deactivated事件,它保证在您的App以任何方式离开屏幕时都会被调用

在页面中(无论是.ctor还是加载的eventhandler),将处理程序附加到该事件,并在该处理程序中收集关闭时必须存储的所有内容。这是确保它不会蒸发的最简单的方法。请记住在页面上取消链接该处理程序。已卸载,否则将严重泄漏内存/资源

顺便说一句,代码是什么

var settings = IsolatedStorageSettings.ApplicationSettings;

settings["remZone"] = txtBoxZone.Text;
settings["remSpace"] = txtBoxSpace.Text;
在某些情况下,这是不够的。如果确实需要确保保留设置,则必须在更改后手动调用Save():

var settings = IsolatedStorageSettings.ApplicationSettings;

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

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

这是因为设置存储在某些特定的场合,如应用程序退出、墓碑等。我不记得在停用时会保存这些设置,因此仅按“上一步”可能不会将它们保存到ISO。更重要的是,如果你设置了它们,应用程序崩溃——例如由于未处理的异常——或者电池/电源耗尽,或者用户只是关闭了手机——它们将不会被存储

Backpress不是您收到的唯一事件,还有一个App.Deactivated事件,它保证在您的App以任何方式离开屏幕时都会被调用

在页面中(无论是.ctor还是加载的eventhandler),将处理程序附加到该事件,并在该处理程序中收集关闭时必须存储的所有内容。这是确保它不会蒸发的最简单的方法。请记住在页面上取消链接该处理程序。已卸载,否则将严重泄漏内存/资源

顺便说一句,代码是什么

var settings = IsolatedStorageSettings.ApplicationSettings;

settings["remZone"] = txtBoxZone.Text;
settings["remSpace"] = txtBoxSpace.Text;
在某些情况下,这是不够的。如果确实需要确保保留设置,则必须在更改后手动调用Save():

var settings = IsolatedStorageSettings.ApplicationSettings;

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

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

这是因为设置存储在某些特定的场合,如应用程序退出、墓碑等。我不记得在停用时会保存这些设置,因此仅按“上一步”可能不会将它们保存到ISO。更重要的是,如果你设置了它们,应用程序崩溃——例如由于未处理的异常——或者电池/电源耗尽,或者用户只是关闭了手机——它们将不会被存储

谢谢,这就是我要找的!谢谢,这就是我要找的!