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