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的生命周期

微信小程序生命周期

微信小程序生命周期(onLoad,onHide,onShow,onReady,onUnload)

小程序的生命周期

微信小程序生命周期学习笔记-页面篇

微信小程序:渲染流程、生命周期和触发顺序