wp7后台文件传输之-----BackgroundTransferService(一)
2012-02-23 10:48
169 查看
之前在"WP7多任务处理之---PeriodicTask"中讲到,WP7在后台任务处理接口中包含一个后台文件传输接口,该接口提供了HTTP/HTTPS协议下的文件传输方式,包含上传和下载.对于一些耗时的,而且对实时性要求不高的上传,下载操作,我们可以放到后台让系统去选择时间来处理. 今天就来讲一下如何创建一个可以在后台传输数据的APP.
在MSDN文档中关于后台文件传输这部分内容,出现最多的几个词是:限制,限制,限制.
由于后台文件传输对电池和数据流量消耗很大,所以微软对这个功能设下了诸多的限制.
关于文件大小的限制:
1.上传文件最大不能超过5MB
2.如果手机在非WIFI状态下,下载文件最大不能大于20MB
3.如果手机在WIFI状态下,但是没有接通外部电源,下载文件的大小不能大于100MB
关于请求队列数目的限制
1.每个应用在队列中最多只能有5个未完成的传输请求.
2.每个设备上,所有应用的并发传输数目只有2个.也就是说每个手机最多只有2个传输任务在同时执行.
3.每个设备上,所有应用在传输队列中最多只能有500个传输请求
4.每个请求的HTTP标头数目最多15个
5.每个请求的所有HTTP标头不能大于16KB
其他的一些限制内容
1.后台数据传输在2G,EDGE,GPRS网络下不会执行.也就是说除非用户用的是3G网络或者连上WIFI,否则后台数据传输是不会执行的.
2.如果在3G环境下,数据传输速度低于50Kbps,或者在WIFI/USB环境下低于100Kbps,那么传输将会暂停并重试.
另外,微软还给了两个关于服务端的忠告
1.如果传输的文件大小大于5M,那么服务器应该返回内容的长度,不然会严重降低传输性能.
2.如果该次传输的内容大于5MB,那么服务器应该支持断点续传,不然会严重降低传输性能.
PS.在MSDN上这段话的原话是这么写的:
The content-length header is required on the server side for files greater than 5 MB. Servers should always return the content-length in responses. Failing to do so can result in severely degraded transfer performance.
Range headers are required on the server side for files greater than 5 MB. Servers should always support range request headers. Failing to do so can result in severely degraded transfer performance.
看到这里.应该差不多崩溃了..这不是坑爹呢嘛.限制比功能还多.但是,微软说,为了用户体验,这些都是必须的.
但是别急..还没完,如果你的应用要包含后台文件传输,还有一些UI方面的限制.不然商店审核时过不鸟的..- -(真TM想问候鲍大爷)
关于UI方面的限制
1.如果你的应用有后台传输功能,那么必须在应用的某个地方提示用户选择是否允许后台传输.
2.如果你的应用有后台传输功能,那么必须提供一个让用户可以查看所有传输状态的地方.
3.如果你的应用有后台传输功能,那么必须提供一个地方让用户可以挂起或者取消传输.
好吧,今天就先这样,下一次我们来实现一个可以后台上传文件的DEMO!!
本文章同步发表在WPDevN: http://www.wpdevn.com/showtopic-47.aspx
在MSDN文档中关于后台文件传输这部分内容,出现最多的几个词是:限制,限制,限制.
由于后台文件传输对电池和数据流量消耗很大,所以微软对这个功能设下了诸多的限制.
关于文件大小的限制:
1.上传文件最大不能超过5MB
2.如果手机在非WIFI状态下,下载文件最大不能大于20MB
3.如果手机在WIFI状态下,但是没有接通外部电源,下载文件的大小不能大于100MB
关于请求队列数目的限制
1.每个应用在队列中最多只能有5个未完成的传输请求.
2.每个设备上,所有应用的并发传输数目只有2个.也就是说每个手机最多只有2个传输任务在同时执行.
3.每个设备上,所有应用在传输队列中最多只能有500个传输请求
4.每个请求的HTTP标头数目最多15个
5.每个请求的所有HTTP标头不能大于16KB
其他的一些限制内容
1.后台数据传输在2G,EDGE,GPRS网络下不会执行.也就是说除非用户用的是3G网络或者连上WIFI,否则后台数据传输是不会执行的.
2.如果在3G环境下,数据传输速度低于50Kbps,或者在WIFI/USB环境下低于100Kbps,那么传输将会暂停并重试.
另外,微软还给了两个关于服务端的忠告
1.如果传输的文件大小大于5M,那么服务器应该返回内容的长度,不然会严重降低传输性能.
2.如果该次传输的内容大于5MB,那么服务器应该支持断点续传,不然会严重降低传输性能.
PS.在MSDN上这段话的原话是这么写的:
The content-length header is required on the server side for files greater than 5 MB. Servers should always return the content-length in responses. Failing to do so can result in severely degraded transfer performance.
Range headers are required on the server side for files greater than 5 MB. Servers should always support range request headers. Failing to do so can result in severely degraded transfer performance.
看到这里.应该差不多崩溃了..这不是坑爹呢嘛.限制比功能还多.但是,微软说,为了用户体验,这些都是必须的.
但是别急..还没完,如果你的应用要包含后台文件传输,还有一些UI方面的限制.不然商店审核时过不鸟的..- -(真TM想问候鲍大爷)
关于UI方面的限制
1.如果你的应用有后台传输功能,那么必须在应用的某个地方提示用户选择是否允许后台传输.
2.如果你的应用有后台传输功能,那么必须提供一个让用户可以查看所有传输状态的地方.
3.如果你的应用有后台传输功能,那么必须提供一个地方让用户可以挂起或者取消传输.
好吧,今天就先这样,下一次我们来实现一个可以后台上传文件的DEMO!!
本文章同步发表在WPDevN: http://www.wpdevn.com/showtopic-47.aspx
相关文章推荐
- wp7后台文件传输之-----BackgroundTransferService(二)
- 前台使用ajax与后台进行文件传输
- android,wp7后台程序运行区别
- WP7中对ListBox的ItemTemplate中子元素的后台操作
- WP7在使用后台计划任务代理的时候要注意的地方
- wp7 >> 通过后台代码给ListBoxItem添加ContextMenu 属性
- 【WP7】后台加载数据BackgroundWorker
- 中国大学MOOC中的后台文件传输
- 与众不同 windows phone (13) - Background Task(后台任务)之后台文件传输(上传和下载)
- wp7-如何在后台修改前台的grid的背景
- Dreamweaver 8的后台文件传输
- [翻译]WP7 QuickStart-第十一篇-在后台运行程序(墓碑效应)
- WP7中对ListBox的ItemTemplate中子元素的后台操作
- 【WP7】后台计划任务代理
- 与众不同 windows phone (13) - Background Task(后台任务)之后台文件传输(上传和下载)
- Windows Phone Mango开发实践——后台文件传输
- WP7中对ListBox的ItemTemplate中子元素的后台操作
- [WP]关于WP7的后台的一些小事情
- WP7上传应用时报“不能为后台代理AudioPlayAgent定义超过一个实例”解决方案。
- WP7中,在后台c#代码中控制Grid