C# WP7退出时的运行方法
我的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;
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。更重要的是,如果你设置了它们,应用程序崩溃——例如由于未处理的异常——或者电池/电源耗尽,或者用户只是关闭了手机——它们将不会被存储 谢谢,这就是我要找的!谢谢,这就是我要找的!