Transferencia de datos en segundo plano (HTML)
[ Este artículo está destinado a desarrolladores de Windows 8.x y Windows Phone 8.x que escriben aplicaciones de Windows en tiempo de ejecución. Si estás desarrollando para Windows 10, consulta la documentación más reciente
Usa las API Windows.Networking.BackgroundTransfer que se ofrecen en Windows en tiempo de ejecución para mejorar tu aplicación con características avanzadas de carga y descarga de archivos que se ejecutan en segundo plano mientras la aplicación está en suspensión, incluyen administración del ciclo de vida por operación y se mantienen después de que la aplicación haya finalizado. Esta característica es ideal para grandes operaciones de carga y descarga de archivos mediante los protocolos HTTP y HTTPS. Se admite FTP, pero solo cuando se realizan operaciones de descarga.
La transferencia en segundo plano se ejecuta con independencia de la aplicación que llama y está diseñada principalmente para operaciones de transferencia a largo plazo para recursos como vídeo, música e imágenes de gran tamaño. Para estos escenarios, el uso de transferencias en segundo plano es fundamental, ya que las descargas siguen progresando, incluso aunque se suspenda la aplicación. En el teléfono, las transferencias en segundo plano siguen progresando, aunque se finalice la aplicación. Para obtener más información sobre el ciclo de vida de una aplicación, revisa la documentación sobre el ciclo de vida de la aplicación.
Nota Si descargas recursos pequeños que probablemente se completen rápidamente, debes usar las API HttpClient en vez de una transferencia en segundo plano.
¿Cómo funciona la característica de transferencia en segundo plano?
Cuando una aplicación usa una transferencia en segundo plano para iniciar una transferencia, la solicitud se configura e inicializa con objetos de clase BackgroundDownloader o BackgroundUploader. El sistema controla cada operación de transferencia por separado y la separa de la aplicación que llama. Dispones de información del progreso si quieres indicar el estado del usuario en la interfaz de usuario de la aplicación. Tu aplicación puede pausar, reanudar, cancelar o incluso leer los datos mientras se realiza la transferencia. La manera en que el sistema controla las transferencias promueve el uso inteligente de energía y evita los problemas que pueden surgir ante eventos que afectan a la aplicación conectada, como la suspensión inesperada de la aplicación, la finalización o cambios repentinos en el estado de red.
Mira este breve vídeo para ver una demostración de una sencilla descarga de archivo mediante la transferencia en segundo plano.
Aplicaciones de la Tienda de Windows Phone: ¿mi aplicación puede usar la transferencia en segundo plano para crear solicitudes de archivo autenticadas?
La transferencia en segundo plano proporciona métodos que admiten credenciales básicas de proxy y servidor, así como el uso de encabezados HTTP personalizados (mediante SetRequestHeader) para cada operación de transferencia.
¿Cómo se adapta esta característica a los cambios de estado de red o apagados inesperados?
Cuando se producen cambios en el estado de la red, la transferencia en segundo plano mantiene una experiencia coherente para cada operación de transferencia, ya que saca provecho de manera inteligente de la información sobre el estado de la conectividad y el plan de datos del operador, que se proporciona con la característica Conectividad. Para definir el comportamiento en distintos escenarios de red, una aplicación establece una directiva de coste para cada operación usando los valores que BackgroundTransferCostPolicy define.
Por ejemplo, la directiva de coste definida para una operación puede indicar que se debe pausar automáticamente la operación cuando el dispositivo está usando una red de uso medido. La transferencia se reanudará (o reiniciará) de forma automática cuando se establezca una conexión a una red "sin restricciones". Para obtener más información sobre cómo se definen las redes por coste, consulta NetworkCostType.
Aunque la característica de transferencia en segundo plano tiene sus propios mecanismos para controlar los cambios de estado de la red, hay otras consideraciones generales sobre conectividad que debes tener en cuenta en relación con las aplicaciones conectadas a la red. Si quieres obtener más información, lee el tema sobre cómo sacar partido de la información de conexión de red disponible.
Nota
Las aplicaciones de la Tienda de Windows Phone tienen características que permiten al usuario supervisar y restringir la cantidad de datos que se transfieren, en función del tipo de conexión, el estado de movilidad y el plan de datos del usuario. Por este motivo, las transferencias en segundo plano se pueden pausar en el teléfono, incluso cuando la BackgroundTransferCostPolicy indica que la transferencia debe proseguir.
En esta tabla puedes ver cuándo se permiten transferencias en segundo plano en el teléfono para cada valor de BackgroundTransferCostPolicy según el estado actual del teléfono. Puedes usar la clase ConnectionCost para determinar el estado actual del teléfono.
Estado del teléfono | Solo sin restringir | Predeterminado | Siempre |
---|---|---|---|
Conectado a WiFi | Permitir | Permitir | Permitir |
Conexión de uso medido, sin roaming, con límite de datos, con seguimiento para permanecer por debajo del límite | Denegar | Permitir | Permitir |
Conexión de uso medido, sin roaming, con límite de datos, con seguimiento para superar el límite | Denegar | Denegar | Permitir |
Conexión de uso medido, roaming, con límite de datos | Denegar | Denegar | Permitir |
Conexión de uso medido, por encima del límite de datos. Este estado solo se produce cuando el usuario habilita "Restringir datos en segundo plano" en la interfaz de usuario de Data Sense. | Denegar | Denegar | Denegar |
RequestUnconstrainedDownloadsAsync y RequestUnconstrainedUploadsAsync no se admiten en el teléfono. Las llamadas a estas API se compilarán correctamente, pero tendrán errores en el tiempo de ejecución con una excepción E_NOT_IMPL.
Más información sobre la transferencia en segundo plano
Sección | Descripción |
---|---|
Transferencia de un archivo a un recurso de red | Agrega la funcionalidad para cargar y descargar archivos en la aplicación de la Tienda Windows de forma segura. |
Background Transfer API reference | Documentación de API para el espacio de nombres de la transferencia en segundo plano de Windows en tiempo de ejecución. |
Ejemplo de transferencia en segundo plano | Esta muestra ilustra el comportamiento flexible, que ahorra energía y con conocimiento de costos de la API de transferencia en segundo plano para aplicaciones de la Tienda Windows. |