退出WP7运行方式

本文关键字:运行方式 WP7 退出 | 更新日期: 2023-09-27 18:08:19

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

 protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e)
    {
        var settings = IsolatedStorageSettings.ApplicationSettings;
        settings["remZone"] = txtBoxZone.Text;
        settings["remSpace"] = txtBoxSpace.Text;
    }

问题是有些用户不按后退键,而是按home键退出应用程序,所以内容没有保存。

如果可能的话,我认为有两种途径:1. 是否有一个函数会在home键被按下时运行这个方法,比如onBackKeyPress。2. 当用户输入文本框时,是否有一种简单的方法来保存文本框的内容?

谢谢。编辑:

解决方案如下:

   protected override void OnNavigatingFrom(NavigatingCancelEventArgs e)
     {
         var settings = IsolatedStorageSettings.ApplicationSettings;
         settings["remZone"] = txtBoxZone.Text;
         settings["remSpace"] = txtBoxSpace.Text;
     }

退出WP7运行方式

最简单的解决方法就是重写Page.OnNavigatingFrom方法。

这里

Backpress不是你接收到的唯一事件,还有一个app . deactivated事件,当你的应用以任何方式离开屏幕时,它都会被调用。

在你的页面中(无论是. tor还是Loaded eventandler),为该事件附加一个处理程序,并在该处理程序中收集在关闭时必须存储的所有内容。这是确保它不会蒸发的最简单的方法。只要记住在Page上取消链接处理程序。卸载,否则你会大大泄漏内存/资源!!

顺便说一句。代码

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。更重要的是,如果你设置了它们,应用程序崩溃-例如由于未处理的异常-或者如果电池/电源下降,或者用户只是关闭了手机-它们将不会被存储!