当前位置:编程学习 > wap >>

[翻译]WP7 QuickStart-第十一篇-在后台运行程序(墓碑效应)

 

【译者注:这篇文章是翻译自微软官方的WP7 QuickStart的第十一篇,讲述WP下的程序的墓碑效应。部分内容加入了自己的理解和表达习惯。而翻译此系列的主要目的一是为了练习英语,二是让自己作为一个 BI开发者对WP7的开发有一个了解。部分翻译不当的地方望各位高人指出批评指正】

 

【译者注:Tombstoning,早先在电路行业有使用,译为墓碑效应,即小型片状(如电阻器或电容器的)表面贴装器件,因其两端的金属封头与板面焊盘之间在可焊性或焊锡力量上可能有差异存在,经过红外线或热风熔焊后,偶尔会出现一端焊牢而另一端被拉起的浮开现象,称为墓碑效应或吊桥效应(drawbridging effect) 、曼哈顿效应(Manhattan effect) 

这里为了避开我们语言中比较忌讳的译法,所以遵从这种翻译方式。】

 

Windows Phone操作系统一次只允许一个应用程序运行。当用户从一个程序导航到另个一个程序时,操作系统会终止程序。为了提供给用户更好的体验,操作系统提供了当程序被重新激活时帮助你恢复程序到之前的展现状态。此篇将描述墓碑效应的过程,应用程序生命周期以及如何恢复状态。

 

其中主要包含以下部分:

墓碑效应概览

应用程序生命周期

应用程序状态

页面状态

最佳实践

 

墓碑效应概览

Windows Phone操作系统不允许任何第三方程序在后台运行,也就是说,一次只能运行一个程序。这样做的原因是保持电池的使用时间并且确保用户界面的连贯和快速响应。【译者注:关于这点,你怎么理解都可以,但相信微软下一个版本会解决这个问题】当用户从程序导航到另外一个程序,Windows Phone反激活程序,这就是墓碑效用。它是一个操作系统当用户导航到其它程序时反激活程序的一个过程。在下列情况下程序会被反激活:

1. 有电话呼入。

2. 电话进入休眠状态。

3. 用户按到了开始或者搜索按钮,或者收到了一个通知。

4. 程序调用了一个外部的任务。

当墓碑效应中的程序重新激活,它必须看上去跟墓碑效应之前的一模一样,这样会给用户一个比较好的体验。理想状况下,用户不应该感觉到这是一个从墓碑效应中重新被激活的一个全新的过程。比如,设想你打开了一个很长的页面,并且已经向下滚动阅读了很多的内容,然后你导航到了另外一个页面,当你从这个页面返回的时候,先前滚动到的位置消失,而且回到了页面的顶端,这是多么闹心的事。另一方面,当你在填写一个内容很多的表单,你明显不希望看到你遭遇了一个小错误而所有的填写的内容全部丢失。

为了解决这种情况,当程序被反激活后,操作系统维护了一些关于程序在内存中的状态信息,用这个信息就可以在程序被重新激活的时候被恢复呈现状态。

Windows Phone提供了一些方法和事件来恢复程序和页面状态信息。此篇主要描述这些方法和事件。

 

应用程序生命周期

因为Windows Phone程序可以被墓碑效应化,所以你需要理解一下程序的生存周期。操作系统提供了四个事件代表程序在生命周期中的状态。在程序中可以采取适当的操作,这些事件是Launching,Closing,Deactivated和Activated,下图显示这四个事件的发生。

clip_image001

Launching-开始运行

当程序从开始屏幕被启动后,就可以说其被(Launched)执行了。不管用户什么时候运行的程序,一个新的实例都将被创建。当程序被启动之后,Launching事件就被出发了。下面的代码是App.xaml.cs文件的Launching事件部分。

// Code to execute when the application is launching (eg, from Start)

// This code will not execute when the application is reactivated

private void Application_Launching(object sender, LaunchingEventArgs e)

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,