0

好的,这就是我目前对 Windows Phone 7.1 应用程序生命周期的了解,但我还有几个问题。

应用程序启动 - 在应用程序启动时调用,然后继续初始化应用程序,然后是 MainPage。

Applicaiton Deactivated - 当应用程序处于休眠状态(正在运行但用户未使用它)时调用。这将调用当前页面的 OnNavigatedFrom 方法,然后再移动到 App 类中的 ApplicationDeactivated 方法。一旦应用程序处于休眠状态,如果操作系统需要更多内存,它可能会变成墓碑。

应用程序已激活 - 当应用程序退出休眠或墓碑状态时调用,您可以调用 IsApplicationInstancePreserved 来确定哪个(true 表示休眠,因此状态被保留)。一旦调用它,它就会移动到 OnNavigatedTo。

Applicaiton Closing - 当用户向后导航超过第一页并且应用程序退出时调用。OnNavigatedFrom 方法(在第一页上)也将被调用。

所以我的问题主要与调用 ApplicationActivated 方法时正在初始化的内容有关。

- 如果应用程序没有被墓碑化,您需要做些什么来初始化应用程序,或者操作系统是否会将所有内容恢复到原来的状态?构造函数是否甚至调用了它正在导航到的页面,或者所有内容都被冻结了?

- 如果应用程序被墓碑化了,页面构造函数会被调用吗?(我假设是这样,因为没有保存任何内容)。如果页面构造函数被调用,第一次导航到这个页面和从墓碑状态返回有区别吗?

4

2 回答 2

2

这些都是你可以自己测试的。在应用程序项目的属性下,您可以在离开应用程序时启用逻辑删除。此设置位于“调试”选项卡下。

于 2012-06-21T23:28:07.527 回答
1

如果我错了,请纠正我,但这里是我提出的问题的答案。

- 当应用程序被激活并且它没有被墓碑化时,只有最后一页的 OnNavigatingTo 方法被调用(没有页面构造函数)。我不相信在这种情况下您需要做任何事情,因为应用程序状态已保存。

- 当应用程序被墓碑化时,您需要保存可能需要重新加载的任何页面数据,因为页面上的所有内容都会丢失,并且当它再次被激活时,在 OnNavigatedTo 方法之前调用页面构造函数。

希望这对将来有类似问题的人有所帮助....

于 2012-06-26T01:54:29.453 回答