WP7 应用程序生命周期
Posted
技术标签:
【中文标题】WP7 应用程序生命周期【英文标题】:WP7 Application Lifecycle 【发布时间】:2012-06-21 19:32:44 【问题描述】:好的,这就是我目前对 Windows Phone 7.1 应用程序生命周期的了解,但我还有几个问题。
应用程序启动 - 在应用程序启动时调用,然后继续初始化 App,然后是 MainPage。
应用程序已停用 - 当应用程序处于休眠状态(正在运行但用户未使用它)时调用。这将调用当前页面的 OnNavigatedFrom 方法,然后再移动到 App 类中的 ApplicationDeactivated 方法。一旦应用程序处于休眠状态,如果操作系统需要更多内存,它可能会变成墓碑。
应用程序已激活 - 当应用程序退出休眠或墓碑状态时调用,您可以调用 IsApplicationInstancePreserved 来确定哪个(true 表示休眠,因此状态被保留)。一旦调用它,它就会移动到 OnNavigatedTo。
申请结束 - 当用户向后浏览第一页并且应用程序退出时调用。 OnNavigatedFrom 方法(在第一页)也会被调用。
所以我的问题主要与调用 ApplicationActivated 方法时正在初始化的内容有关。
-如果应用程序没有被墓碑化,您需要做些什么来初始化应用程序,或者操作系统是否会将所有内容恢复到原来的状态?构造函数是否调用了它正在导航到的页面,或者所有内容都被冻结了?
-如果应用程序被墓碑化了,页面构造函数会被调用吗? (我假设是这样,因为没有保存任何内容)。如果页面构造函数被调用,第一次导航到这个页面和从墓碑状态返回有区别吗?
【问题讨论】:
【参考方案1】:这些都是你可以自己测试的。在应用程序项目的属性下,您可以在离开应用程序时启用逻辑删除。此设置位于“调试”选项卡下。
【讨论】:
【参考方案2】:如果我错了,请纠正我,但这里是我提出的问题的答案。
-当应用程序被激活并且它没有被墓碑化时,只有最后一页的 OnNavigatingTo 方法被调用(没有页面构造函数)。我认为在这种情况下您不需要做任何事情,因为应用程序状态已保存。
-当应用程序被墓碑化时,您需要保存可能需要重新加载的任何页面数据,因为页面上的所有内容都会丢失,并且当它再次被激活时,会在 OnNavigatedTo 方法之前调用页面构造函数。
希望这对以后有类似问题的人有所帮助....
【讨论】:
以上是关于WP7 应用程序生命周期的主要内容,如果未能解决你的问题,请参考以下文章
SpringFilter生命周期Servlet生命周期bean的生命周期