当前位置:操作系统 > windows8 >>

新时尚Windows8开发(35):后台传输

所谓后台传输,关键是突出在,在应用程序不在前台运行时,它仍然可以进行数据传输,一般而言,这个功能用于下载文件比较适合,像“应用商店”的下载应用就是使用了后台传输。

这个后台传输当然包括下载和上传了,不过,我想是下载的情况会多一些,呵呵,不知道是不是这样,元芳,你怎么看?

好了,不管元芳怎么看了,首先大家做好心理准备,接下来我会讲一点点比较枯燥的东东,不怕,只是一点点而已,我不喜欢长篇巨论,免得各位看着看着就睡觉了。

 

实现后台下载,一般有以下几步要走:

引入Windows.Networking.BackgroundTransfer命名空间。
new一个BackgroundDownloader(如果下载数据)或者一个BackgroundUploader(如果是下载)。
如果是BackgroundDownloader,就调用CreateDownload方法创建DownloadOperation实例,如果是BackgroundUploader,就调用CreateUpload方法创建UploadOperation实例;
此时调用DownloadOperation的StartAsync方法或者UploadOperation的StartAsync方法开始干活。
这里因为涉及到操作进度,所以要使用WindowsRuntimeSystemExtensions类为Windows.Foundation.IAsyncOperationWithProgress<TResult, TProgress>所定义的扩展方法AsTask,这个我不深入讲了,看看例子就知道,呵呵,那可是C# 5.0的妙用!!

 

OK,枯燥期已过,下面是激情期,这个例子不复杂,就是输入一个MP3的下载地址,然后下载。

【XAML】

[html]

<Page 
    x:Class="App1.MainPage" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:local="using:App1" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    mc:Ignorable="d"> 
     
    <Page.Resources> 
        <Style TargetType="TextBlock"> 
            <Setter Property="FontSize" Value="27"/> 
            <Setter Property="FontFamily" Value="宋体"/> 
        </Style> 
    </Page.Resources> 
 
    <Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}"> 
        <Grid.RowDefinitions> 
            <RowDefinition Height="auto"/> 
            <RowDefinition Height="*"/> 
        </Grid.RowDefinitions> 
        <StackPanel Grid.Row="0" Margin="15,8" Orientation="Horizontal"> 
            <TextBlock Text="输入下载URI:" VerticalAlignment="Center" /> 
            <TextBox x:Name="txtInputUri" Width="680"/> 
            <Button x:Name="btnDown" Margin="38,0,0,0" VerticalAlignment="Center" Content="开始下载" Padding="17,5,17,5" FontSize="22" Click="onDownload_Click"/> 
        </StackPanel> 
        <StackPanel Grid.Row="1" Margin="20"> 
            <ProgressBar x:Name="probar" Maximum="100" Minimum="0" SmallChange="1" Width="700" HorizontalAlignment="Left" Foreground="Yellow" 
                         Height="30" Margin="6,21,0,35"/> 
            <TextBlock x:Name="tbMsg" Margin="6,8,0,0" /> 
        </StackPanel> 
    </Grid> 
</Page> 

<Page
    x:Class="App1.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:App1"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">
   
    <Page.Resources>
        <Style TargetType="TextBlock">
            <Setter Property="FontSize" Value="27"/>
            <Setter Property="FontFamily" Value="宋体"/>
        </Style>
    </Page.Resources>

    <Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
        <Grid.RowDefinitions>
            <RowDefinition Height="auto"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
        <StackPanel Grid.Row="0" Margin="15,8" Orientation="Horizontal">
            <TextBlock Text="输入下载URI:" VerticalAlignment="Center" />
            <TextBox x:Name="txtInputUri" Width="680"/>
            <Button x:Name="btnDown" Margin="38,0,0,0" VerticalAlignment="Center" Content="开始下载" Padding="17,5,17,5" FontSize="22" Click="onDownload_Click"/>
        </StackPanel>
        <StackPanel Grid.Row="1" Margin="20">
            <ProgressBar x:Name="probar" Maximum="100" Minimum="0" SmallChange="1" Width="700" HorizontalAlignment="Left" Foreground="Yellow"
                         Height="30" Margin="6,21,0,35"/>
            <TextBlock x:Name

补充:综合编程 , 其他综合 ,
更多windows8疑问解答:
玩转win 8 解开隐藏小工具的神秘面纱玩转win 8 解开隐藏小工具的神秘面纱(2)
Windows 8平板电脑难成主流的10大缘由Windows 8平板电脑难成主流的10大缘由(2)
手工打造Windows 8的开始菜单的技巧手工打造Windows 8的开始菜单的技巧(2)
那些你不熟悉的系统进程管理
Windows 8不能使用建行网银盾的完美解决方案Windows 8不能使用建行网银盾的完美解决方案(2)
Windows快捷键大全 把Windows 8玩弄于鼓掌之间Windows快捷键大全 把Windows 8玩弄于鼓掌之间(2)
Win8系统疑难解答与使用技巧分享Win8系统疑难解答与使用技巧分享(2)
Win8消费者预览版中的IE10浏览器功能详解Win8消费者预览版中的IE10浏览器功能详解(2)
玩转win8系统中的108个运行命令玩转win8系统中的108个运行命令(2)玩转win8系统中的108个运行命令(3)玩转win8系统中的108个运行命令(4)玩转win8系统中的108个运行命令(5)玩转win8系统中的108个运行命令(6)
windows8技巧大扫盲 50个使用小技巧集锦windows8技巧大扫盲 50个使用小技巧集锦(2)windows8技巧大扫盲 50个使用小技巧集锦(3)windows8技巧大扫盲 50个使用小技巧集锦(4)
Windows 8系统15个使用技巧汇总
6分钟给你与开机一样快速的系统重置
分享:Win8预览版安装系统,驱动系统,使用技巧分享:Win8预览版安装系统,驱动系统,使用技巧(2)
Windows用户对于Windows 8的众多功能期待Windows用户对于Windows 8的众多功能期待(2)
将WIN8装入U盘和移动硬盘教程
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,