您的位置:首页 > 移动开发

Windows Phone 7的Launchers&Choosers简介及其行为浅析

2010-10-18 22:27 429 查看
本文简单介绍Launchers和Choosers的概念,以及它们的区别,简述各个Launcher和Chooser的功能,并分析它们的行为。

Launchers和Choosers是为了统一调用系统提供的服务(程序),让每个第三方应用程序调用相同系统功能时,保持界面的一致性。

Launchers

启动器:启动Windows Phone 7内置应用程序。

包括以下几个:

EmailComposeTask:启动发送Email的应用程序。

MediaPlayerLauncher:启动MeidaPlayer应用程序。

PhoneCallTask:启动打电话应用程序。

SearchTask:启动搜索应用程序。

SmsComposeTask:启动发短信应用程序。

WebBrowserTask:启动IE。

MarketplaceDetailTask:启动Marketplace客户端应用程序,并显示指定应用的详细信息。

MarketplaceHubTask:启动Marketplace客户端应用程序。

MarketplaceReviewTask:启动Marketplace客户端应用程序的审查页面。

MarketplaceSearchTask:启动Marketplace客户端应用程序的搜索页面。

Choosers

选择器:调用Windows Phone 7的应用程序选择所需要的信息(例如照片,电话等)

CameraCaptureTask:启动照相界面,拍照后返回照片图像。

EmailAddressChooserTask:启动选Email地址界面,选择后返回Email地址。

PhoneNumberChooserTask:启动电话号码选择界面,选择后返回电话号码。

PhotoChooserTask:启动图片选择界面,选择后返回图像信息。

SaveEmailAddressTask:启动保存Email地址界面,选择后返回保存是否成功。

SavePhoneNumberTask:启动保存电话号码界面,选择后返回保存是否成功。

启动器和选择器怎样区别?

启动器只是负责把相应的应用程序启动起来就可以了。

选择器需要将相应的应用程序界面启动,等待操作结束返回的结果。

Launcher行为分析

通常情况下,Laucher启动后,App.xaml.cs中的Application_Deactivated方法被执行,应用程序进入Deactivating状态;当Launcher操作结束,Application_Activated方法被执行,返回到应用程序,进入Activating状态。不过PhoneCallTask和MediaPlayerLauncher有些特别。

统计详见下表:

 Application_DeactivatedApplication_Activated所在页面的构造函数
EmailComposeTask执行执行执行
MediaPlayerLauncher执行执行不执行
PhoneCallTask不执行不执行不执行
SearchTask执行执行执行
SmsComposeTask执行执行执行
WebBrowserTask执行执行执行
MarketplaceDetailTask执行执行执行
MarketplaceHubTask执行执行执行
MarketplaceReviewTask执行执行执行
MarketplaceSearchTask执行执行执行
PhoneCallTask弹出的可以视为是一个MessageBox,只是对程序覆盖,并未将应用程序切换到后台,所以都未执行。

MediaPlayerLauncher启动后,按返回键,返回到应用程序所在页面时,并不执行该页面的构造函数,其他Launcher却都执行,没想明白,谁知道请留言,谢谢!

Chooser行为分析

通常情况下,Chooser启动后,

 Application_DeactivatedApplication_Activated所在页面的构造函数
CameraCaptureTask执行执行不执行
EmailAddressChooserTask执行执行不执行
PhoneNumberChooserTask执行执行不执行
PhotoChooserTask执行执行不执行
SaveEmailAddressTask执行执行执行
SavePhoneNumberTask执行执行执行
从上表可以看出后两个SaveEmailAddressTask和SavePhoneNumberTask的行为与前面四个不同,前四个Chooser执行完毕后,自动返回到应用程序调用它的页面,而这两个Chooser执行完毕后,不会自动返回,而需要按返回键,返回到之前调用它的页面。

因此如果不在构造函数中创建(new)和Cempleted事件的绑定,后连个Chooser将无法正常工作。

建议将Chooser的创建(new)和Completed事件的绑定操作都放到构造函数中,不要放置到其它位置。

代码下载

 

参考文章:

http://msdn.microsoft.com/en-us/library/ff769556(VS.92).aspx

Windows Phone 7 Training Kit for Developers--Lab_LaunchersAndChoosersWP7Lab
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息