好的,这就是我目前对Windows Phone 7.1应用程序生活方式的了解,但我仍有一些问题。
应用程序启动 - 在应用程序启动时调用,然后继续初始化App,然后是MainPage。
应用程序已停用 - 当应用程序变为休眠状态(运行但用户未使用它)时调用。这将调用当前页面的OnNavigatedFrom方法,然后再转到App类中的ApplicationDeactivated方法。一旦应用程序处于休眠状态,如果操作系统需要更多内存,它可能会变成逻辑删除。
应用程序已激活 - 当应用程序退出休眠状态或逻辑删除状态时调用,您可以调用IsApplicationInstancePreserved来确定哪个(真实意味着休眠,因此状态被保留)。一旦调用它,它就会移动到OnNavigatedTo。
申请结束 - 当用户向后浏览第一页并退出应用程序时调用。也将调用OnNavigatedFrom方法(在第一页上)。
所以我的问题主要与调用ApplicationActivated方法时正在初始化的内容有关。
- 如果应用程序未进行逻辑删除,您是否需要执行任何操作来初始化应用程序,或者操作系统是否将所有内容恢复到原来的状态?构造函数是否甚至调用了它正在导航到的页面,或者只是被冻结的所有内容?
- 如果应用程序WAS Tombstoned,页面构造函数会被调用吗? (我假设没有保存任何东西)。如果调用页面构造函数,那么第一次导航到此页面和从逻辑删除状态返回之间是否存在差异?
答案 0 :(得分:2)
这些都是你可以自己测试的东西。在应用程序项目的属性下,您可以在离开应用程序时启用逻辑删除。此设置位于“调试”选项卡下。
答案 1 :(得分:1)
如果我错了,请纠正我,但这里是我提出的问题的答案。
- 当应用程序被激活并且没有被逻辑删除时,只调用最后一页的OnNavigatingTo方法(没有页面构造函数)。我不相信在这种情况下您需要做任何事情,因为已经保存了应用程序状态。
- 当应用程序被逻辑删除时,您需要保存可能需要重新加载的任何页面数据,因为页面上的所有内容都会丢失,当它再次被激活时,页面构造函数会在OnNavigatedTo方法之前被调用。
希望这可以帮助将来有类似问题的人......