博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Windows Phone 7 Tip (5) — App liftcycle

Posted on 2011-03-07 17:24  星尘的天空  阅读(170)  评论(0编辑  收藏  举报

在新的trainning kit 中有一个例子解释的很清楚了:

1. Application_Launching:只有在新启动程序时触发

2. Application_Closing:只有在推出程序时触发--只有在程序mainpage时按硬后退键

3.?Application_Activated:从home键或者其它方式离开,back键返回时触发

4. Application_Deactivated:从home键或者其它方式离开时触发

Application_Launching和Application_Activated是互斥的,不会同时触发;Application_Closing和Application_Deactivated也如此!

在page level有2个触发事件,分别是离开和返回页面的时候。

protected override void OnNavigatedFrom(NavigationEventArgs e)//从这个页面导航到其他的页面触发的事件
protected override void OnNavigatedTo(NavigationEventArgs e)//从其他的页面导航到当前的页面触发的事件

基本原则:在相应离开事件处理方法中存储app或者page 的state,在返回时读取。但是比如app中有一个list,新启动程序或者返回时都需要把之前存储好的数据显示出来,那么就要在Application_Launching和

Application_Activated读取本地存储。前者要自己实现,后者有PhoneApplicationService支持。其实如果跟踪app lifecycle就会发现,无论是新启动app或者从其他地方返回,都会初始化app和page,那么在相应的构造函数中读取存储数据其实是最合适的,适应所有情况!