Windows Phone 7 Tip (5) -- App liftcycle

在新的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,那么在相应的构造函数中读取存储数据其实是最合适的,适应所有情况!

 

 

 

posted @ 2010-07-26 19:03  上尉  阅读(405)  评论(0编辑  收藏  举报
View Hao Wang's profile on LinkedIn