Windows.Networking.BackgroundTransfer Namespace
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Enables advanced download and upload transfer capabilities within an app. For an overview of Background Transfer capabilities, see Transferring data in the background. Download the Background transfer sample for a code example.
Note
Background transfer is primarily designed for long-term transfer operations for resources like video, music, and large images. For short-term operations involving transfers of smaller resources (i.e. a couple KB), the HTTP APIs are recommended. HttpClient is preferred and can be used in all languages supported by UWP apps. XHR can be used in JavaScript. IXHR2 can be used in C++.
Classes
BackgroundDownloader |
Used to configure downloads prior to the actual creation of the download operation using CreateDownload. For an overview of Background Transfer capabilities, see Transferring data in the background. Download the Background transfer sample for a code example. Note Background Transfer is primarily designed for long-term transfer operations for resources like video, music, and large images. For short-term operations involving transfers of smaller resources (i.e. a couple KB), use the Windows.Web.Http namespace. |
BackgroundTransferCompletionGroup |
Represents a set of background transfer operations (DownloadOperation or UploadOperation objects) that trigger a background task once all the operations are done (if the operations completed successfully) or fail with an error. |
BackgroundTransferCompletionGroupTriggerDetails |
Contains information about a BackgroundTransferCompletionGroup that can be only accessed from the Run method on the IBackgroundTask. |
BackgroundTransferContentPart |
Represents a content part of a multi-part transfer request. Each BackgroundTransferContentPart object can represent either a single string of text content or a single file payload, but not both. |
BackgroundTransferError |
Used to provide errors encountered during a transfer operation. |
BackgroundTransferGroup |
A named group used to associate multiple download or upload operations. This class makes it easy for your app to create these groups and to complete downloads and uploads simultaneously, in serial, or based on priority. For example, if a user decides to download and watch episodes from a popular television series, your app can prioritize the earliest episodes in the series or let the user choose which episode to download first. |
BackgroundTransferRangesDownloadedEventArgs |
Provides access to information about the incremental download progress event. |
BackgroundUploader |
Used to configure upload prior to the actual creation of the upload operation using CreateUpload. For an overview of Background Transfer capabilities, see Transferring data in the background. Download the Background transfer sample for a code example. Note Background Transfer is primarily designed for long-term transfer operations for resources like video, music, and large images. For short-term operations involving transfers of smaller resources (i.e. a couple KB), use the Windows.Web.Http namespace. |
ContentPrefetcher |
Provides properties for specifying web resources to be prefetched. Windows will use heuristics to attempt to download the specified resources in advance of your app being launched by the user. |
DownloadOperation |
Performs an asynchronous download operation. The Background transfer sample demonstrates this functionality. For an overview of Background Transfer capabilities, see Transferring data in the background. |
ResponseInformation |
Represents data that is returned by a server response. |
UnconstrainedTransferRequestResult |
Represents the result a request for unconstrained transfers from a BackgroundDownloader or BackgroundUploader object. Unconstrained transfer operations can run without the resource restrictions normally associated with background network operations while a device running on battery. |
UploadOperation |
Performs an asynchronous upload operation. For an overview of Background Transfer capabilities, see Transferring data in the background. Download the Background transfer sample for a code example. |
Structs
BackgroundDownloadProgress |
Contains status information about the download operation. |
BackgroundTransferFileRange |
Contains status information about the file transfer operation. |
BackgroundUploadProgress |
Contains status information about the upload operation. |
Interfaces
IBackgroundTransferBase |
Represents a background transfer operation. |
IBackgroundTransferContentPartFactory |
Creates a BackgroundTransferContentPart object. |
IBackgroundTransferOperation |
Represents a background transfer operation. |
IBackgroundTransferOperationPriority |
Use this interface to determine the priority of a downloads or uploads within a BackgroundTransferGroup. Possible values are defined by the BackgroundTransferPriority enumeration. |
Enums
BackgroundTransferBehavior |
Defines values used to indicate if downloads and uploads within a BackgroundTransferGroup run in simultaneously or in serial. |
BackgroundTransferCostPolicy |
Defines values used to specify whether transfers can occur on metered networks. |
BackgroundTransferPriority |
Indicates the priority that a BackgroundTransfer operation(download or upload) has in terms of scheduling within an app. |
BackgroundTransferStatus |
Defines transfer operation status values. |
Remarks
On most platforms, Background Transfer will continue to transfer your files (download or upload) even when the app is suspended or when it exits. When your app starts up, you should call BackgroundDownloader.GetCurrentDownloadsAsync or BackgroundUploader.GetCurrentUploadsAsync to enumerate all of your incomplete transfers. Then call DownloadOperation.AttachAsync or UploadOperation.AttachAsync, respectively, on each one. Doing so retrieves the transfer's latest state and causes the transfers to be resumed after a system reboot. When DownloadOperation.IsRandomAccessRequired is true
, the download resumes automatically after a reboot. You should call AttachAsync even in that case. If your app is running when the transfers complete (that is, when the call to AttachAsync returns), then you can do work in response. Alternatively, you can use BackgroundTransferCompletionGroup to launch a background task when the transfers complete.
On Xbox, Background Transfer only transfers your files (download or upload) while the app is in the foreground. When an app is either suspended, put into the background, or has exited, the app's background transfers are suspended. When the app runs in the foreground again, its transfers are resumed automatically.
See also
- HttpClient
- Windows.Storage
- Adding support for networking
- How to configure network isolation capabilities
- Quickstart: Downloading a file
- Quickstart: Uploading a file
- Transferring a file from a network resource
- Transferring data in the background
- IXHR2
- XHR
- Background transfer sample
- Background transfer sample (Windows 8.x)