WP8.1 RT 生命周期详解‏‏‏‏‏‏‏‏‏‏‏‏‏

 

                    应用状态关系转换图

根据此“应用状态关系转换图”。有以下:

三个状态:

NotRunning:未运行    Running:运行中   Suspended:挂起    

三个事件:

Activated        在未运行状态,打开应用      

Resuming           恢复状态,挂起的应用恢复运行

Suspending   挂起状态,用户离开界面将挂起

我们来梳理一下程序运行过程。

1.在应用未运行的时候,处于NotRunning状态。第一次进入应用后,触发Activated,进入Running状态

2.应用由运行状态转到挂起状态时,触发Suspending,进入Suspended状态      

3.

  a.当重新进入应用的前,如果处于挂起状态,就触发Resuming 进入到Running状态

  b.当应用完全关闭后,再次进入应用  就会触发Actived.

较完整的运行过程:

第一次进入应用步骤: 实例化App类  -->  调用OnLuanched()  -->  rootFrame.Navigate(typeof(MainPage))  

(跳转到MainPage中)  -->  实例化MainPage类  -->  OnNavigatedTo  -->  NavigationHelper中的OnNavigatedTo  -->  LoadState(取出状态)

当应用挂起时候,调用App.Suspending  -->  OnNavigatedFrom  -->  NavigationHelper中的OnNavigatedFrom  -->

  SaveState(保存状态)  -->  MainPage.Suspending

当应用重挂起恢复的时候:Resuming    (此时不再像以前一样,不会调用OnNavigatedFrom)

 

On Windows Phone, OnNavigatedFrom() is called when the app is suspended.

OnNavigatedTo() is not called when the app is resumed.

所以我還要加一句

Once the Application is closed, the resumed will not be called;

 

PS:有关调试时的注意事项,可以参照前面的一篇文章。WindowsPhone8.1RT建立空白应用挂起没反应的解决方案

以及我在微软社区的问题:WP8.1 重写OnNavigatedFrom 打断点进不去

posted @ 2014-12-23 15:03  汪小饭  阅读(434)  评论(0编辑  收藏  举报