大家都知道Windows 8将在今年年底推出,而用户们也都希望在鼠标点击和手指触控的瞬间就能打开一个Windows 8 Metro程序。在Windows 8程序开发者博客的最新博文中,微软告知开发者如何编写程序能让用户拥有一个快速启动体验。 1 ?# i+ `' o: F8 c% |7 `0 H: L: @ 这篇技术性颇高的博文谈到了Metro程序的启动画面(也叫版权页),微软说:8 J( ?6 {1 x8 E
“当用户启动一个程序时,首先映入他们眼帘的就是程序的启动画面。每一个Metro程序都会有一个启动画面,它由一张620x300的图片和固定的背景颜色组成。当用户点击Metro程序,为了欢迎用户使用该程序Windows就会显示这个启动画面。当程序显示这个启动画面时,它也在为显示初始UI而执行所有的初始化工作。这可能包括读取程序基本设置,确定页面导航,和/或确定该程序在激活时是否需要证书之类的东西。” ' L' k7 a7 w8 k) I. K' ^1 D 一旦启动画面消失,Metro程序就必须得显示它的首个窗口。这个对于基于JavaScript的程序开发者来说就不用担心什么,但基于C#的程序就必须通过调用Window.Current.Activate来显示首个窗口,该博文如此补充说明: / L0 i- d+ ?* `; g; \ “这个操作不能有所延迟,一旦第一个窗口在规定时间(15秒以内)没有显示,系统就会被强行终止程序运行。此外,你也可以缩短启动画面的显示时间从而尽可能快的显示首个窗口,我们建议你在2-3内就显示首个窗口以确保你的程序达到用户所希望的启动速度,甚至是在低端硬件上也能如此。” & ?, E. Y- g, z! ~& F% N ' Y6 q, i! j/ \9 @7 }0 e2 D. I 文章中还展示了四种不同的程序启动方法,从开始到完成的每一个步骤都有说明,还有每种程序启动类型的样本代码。第一种就是默认的程序启动,其包括3个步骤:1.点击程序,2.显示启动画面,3.显示程序登陆页面,过程就如上面Metro IE 10那样。微软说:“在这个过程中,Windows将控制显示和处理每一个程序的启动画面。启动画面会在程序被完全激活和显示首个窗口之前显示,然后以动画淡出的形式消失在程序的登陆页面中。”3 O. [' @) M4 e- N# f
5 \" Y% F. r( D! D 第二种方法就是概要程序启动,它包括四个步骤:1.点击程序,2.显示启动画面,3.显示程序概要登陆页面,注意页面顶部的进度条,4.显示程序登陆页面。这个启动要求程序在被用户使用之前加载好相关内容。你可以参考上面Windows 8 Music Metro程序启动。! d: Y. V0 E. c4 M& v
$ J7 F! q# Y) A& S0 J% U9 |' l 第三种方法就是扩展程序启动,步骤如下:1.点击程序,2.显示启动画面,3.显示扩展启动画面(含进度条),4.显示程序登陆界面,这次是用Windows 8 Weatherghost xp这个需要额外扩展的程序(比如连接到互联网,检索信息)来做例子。微软说程序的扩展启动可能也需要启动画面,该博文表示: * L7 H0 s/ g0 w " p8 }- i% r: J3 H' v9 C: u) H “程序扩展的启动画面将完全归该程序所有并将会格式化其正在使用的启动画面API。这个API将提供定位信息以确保扩展启动画面的外观和感觉在视觉上保持一致,从而让启动画面(还会显示扩展的进度条和加载细节)统一那些看似独立的加载操作,当扩展的启动画面显示时,该程序还可以继续执行任务加载登陆页面。在加载完成之后就会从扩展启动画面跳转到登陆页面。” 8 C* x) i& q& r% E1 c; p* o. s5 ]% b 最后就是延迟程序启动,微软使用Windows 8的Photo程序作为该类型Metro程序深度系统启动的例子。其步骤如下:点击一张.jpg图片,2.显示启动画面,3.当检索缩略图时延迟程序激活,4.图片显示。文章声称与扩展启动画面不同,“该程序将启动画面消失延迟到异步任务执行之后。因为程序会限制这一延迟的时间,所以这个延迟模式应当谨慎使用,它主要是完成一些简单的的异步操作,比如在程序显示之前来世读取程序设置。”8 b; C$ G- s" o& E0 ~0 j, O
7 Y; {$ V! a h$ [8 C+ H! C