我有一个设置保存的方法,但是我尝试卸载并失去焦点,应用程序将在到达这些方法之前关闭并且不会保存。为了避免这种情况发生,我应该什么时候保存应用程序设置?
我应该使用定时器每30秒保存一次吗?
我应该使用定时器每30秒保存一次吗?
根据您的应用程序不同,保存数据的频率也会不同。然而,主要的时机包括:
当从主屏幕首次启动应用程序时,将调用启动事件(Launching)
;当用户按下返回键退出应用程序时,将调用关闭事件(Closing)
。因此,您很可能会想在关闭事件(Closing)
中保存永久数据。
当用户通过Windows
按钮关闭应用程序,并通过按下返回按钮重新打开它时,将调用激活事件(Activated)
。如果用户第一次启动应用程序,则不会调用此事件。
同样地,当用户按下Windows
按钮时,将调用取消激活事件(Deactivated)
。根据您的应用程序,您将需要在此时保存短暂数据,以便在恢复时可以让您的应用程序看起来好像没有被关闭过一样。(否则,例如,即使用户在按下Windows
按钮之前输入了数据,所有文本框都将变为空白)。
这些是主要的事件,所以您可以围绕它们设计您的应用程序。需要记住的一件事是,如果您的保存文件很大,并且在调用关闭事件(Closing)
后保存时间超过了10秒
,您的应用程序将立即终止,可能会破坏保存文件。因此,对于大型保存文件,您应该提前计划逐步保存(例如,在用户进行不可逆操作之后)。
由于保存时机高度依赖于正在开发的应用程序类型,因此没有一个适用于所有情况的解决方案。请阅读Execution Model MSDN页面,其中提供了更多详细信息和代码示例。
http://msdn.microsoft.com/en-us/library/ff769510(v=vs.92).aspx