现在的位置: 首页 > 综合 > 正文

WP7 Dev [2] Windows Phone 7 For Silverlight 生命周期

2013年10月18日 ⁄ 综合 ⁄ 共 1576字 ⁄ 字号 评论关闭

程序员两难的关键是我们如何维持一个非常灵敏的用户体验,同时又要提供一些多任务操作和维护电池寿命。Windows Phone 7提供了当应用程序处于非活动期内使用墓碑机制。本文将讨论Windows Phone 7的多任务、墓碑、这个生命周期。

  整个应用程序生命周期是从程序的可执行模块启动到终止,目的是在任何时候可提供一个灵敏的系统。这时为了避免俩个以上的应用程序继续在后台运行,争夺资源,导致前台应用程序慢和损耗电池寿命。为了做到这一点Windows Phone 7只允许一个应用程序在前台运行,并不允许第三方应用程序在后台运行,当一个应用程序转到后台运行后(并没有关闭),那么它就是一个墓碑。墓碑意味著应用程序是惰性的,OS依然保存着该应用程序的状态信息。当用户重新启动前,进入墓碑状态,它可以保存当前状态,当用户在此打开时应用程序还在当前。

  Navigation

  当按下硬件中的返回按钮后,你的应用程序就终止了。当你在使用一个应用程序中,又启动了一个新的应用程序,但是旧的应用程序没有被关闭,它就处于非活动状态。但是它将保存很短的时间,时间一到它就被terminated。

  关键的区别在于,关闭是当应用程序再被启动时是新建了一个新的实例,以前的状态没被保存,而处于非活动状态是OS保存了该应用程序的状态,不是新建实例,并不是真正的终止运行。

  手机支持三种造成程序已终止的假象事件

  Events are fired on the termination and resumption of an application

  开发人员可以使用墓碑事件(tombstone events)来维护应用程序和当前页面的状态

  当程序再次运行时,开发人员可以使用此状态来恢复应用程序

  当下列任何情况发生后,你的应用程序立即进入墓碑状态

  用户通过按键导航到一个新的应用程序,例如开始键

  你的应用程序使用了一个launcher或者Chooser来启动另一个进程

  另一方面,如果你启动了一些为数不多的本地服务,你的应用程序并不进入墓碑状态,除非新的前台程序需要更多的资源。下列是一些你可启动的,并不一定是墓碑状态的服务

  · PhotoChooserTask

  · CameraCaptureTask

  · MediaPlayerLauncher

  · EmailAddressChooserTask

  · PhoneNumberChooserTask

  · Multiplayer Game Invite [games]

  · Gamer You Card [games] 

  生命周期

  在应用程序这个生命周期中,状态间的相互转换都会触发一些相关的事件。

  这些事件是

  Launching /Activating

  Running

  Deactivating /Closing

  所有的这些事件都在Microsoft.Phone.Shell.PhoneApplicationService 类中。

  Launching

  当用户点击了应用程序在开始菜单上的层,应用程序就进入启动状态,这时, Launching事件就会被触发。它总是创建一个新的实例,因此在处理launching事件上,你不过渡到一个已存在的会话,虽然你只是检查独立存储上的新实例信息。

  Launching是创建新的实例,resumed是激活实例,两者是互斥的。

  Running

  Launching或Activating事件发生应用程序就进入运行状态。closing or deactivating事件发生就退出运行状态。

  Closing or Deactivating

  程序退出运行状态的;两种方式

  closing说明程序已终止,Deactivating只是程序停用,它还存在内存中。

  Activating

  处于停用状态的程序被激活。

抱歉!评论已关闭.