Compartir a través de


Optimización de la actividad en segundo plano

Las aplicaciones universales de Windows deben funcionar de forma coherente en todas las familias de dispositivos. En los dispositivos con batería, el consumo de energía es un factor fundamental en la experiencia general del usuario con la aplicación. La duración de la batería todo el día es una característica deseable para todos los usuarios, pero requiere eficiencia de todo el software instalado en el dispositivo, incluido el suyo propio.

El comportamiento de la tarea en segundo plano es posiblemente el factor más importante en el costo total de energía de una aplicación. Una tarea en segundo plano es cualquier actividad de programa registrada con el sistema para ejecutarse sin que la aplicación esté abierta. Consulte Creación y registro de una tarea en segundo plano fuera del proceso para obtener más información.

Permisos de actividad en segundo plano

En dispositivos móviles y de escritorio que ejecutan Windows 10, versión 1607 o posterior, los usuarios pueden ver su "Uso de batería por aplicación" en la sección Batería de configuración de Windows. Aquí verán una lista de aplicaciones y el porcentaje de duración de la batería que cada aplicación ha consumido (fuera de la cantidad de duración de la batería que se ha usado desde la última carga). En el caso de las aplicaciones para UWP de esta lista, los usuarios pueden seleccionar la aplicación para abrir controles relacionados con la actividad en segundo plano.

uso de batería por aplicación

Permisos de fondo en dispositivos móviles

En los dispositivos móviles, los usuarios verán una lista de botones de radio que especifican la configuración de permisos de tarea en segundo plano para esa aplicación. La actividad en segundo plano se puede establecer en "Siempre permitido", "Nunca permitido" o "Administrado por Windows", lo que significa que el sistema regula la actividad en segundo plano de la aplicación según una serie de factores.

Botones de radio para permisos de tareas en segundo plano

Permisos en segundo plano en el escritorio

En los dispositivos de escritorio, la opción "Administrado por Windows" se presenta como un interruptor, establecido en Activado de forma predeterminada. Si el usuario cambia a Desactivado, se le presenta una casilla con la que puede definir manualmente los permisos de actividad en segundo plano. Cuando se activa la casilla, la aplicación podrá ejecutar tareas en segundo plano en todo momento. Cuando la casilla está desactivada, la actividad en segundo plano se deshabilitará.

activar permisos de tareas en segundo plano

permisos de tareas en segundo plano desactivadas

En la aplicación, puedes usar el valor de enumeración BackgroundAccessStatus devuelto por una llamada al método BackgroundExecutionManager.RequestAccessAsync() para determinar su configuración actual del permiso de actividad en segundo plano.

Todo esto es decir que si la aplicación no implementa la administración de actividades en segundo plano responsable, el usuario puede denegar los permisos en segundo plano a la aplicación por completo, lo que no es deseable para ninguna de las partes. Si a tu aplicación se le ha denegado el permiso para ejecutarse en segundo plano, pero requiere actividad en segundo plano para completar una acción para el usuario, puedes notificar al usuario y dirigirlo a la configuración de Windows. Para ello, inicie la configuración de Windows en la página Aplicaciones en segundo plano o Detalles de uso de la batería.

Trabajar con la característica de ahorro de batería

El ahorro de batería es una característica de nivel de sistema que los usuarios pueden configurar en Configuración. Corta toda la actividad en segundo plano de todas las aplicaciones cuando el nivel de batería cae por debajo de un umbral definido por el usuario, excepto la actividad en segundo plano de las aplicaciones que se han establecido en "Siempre permitido".

Compruebe el estado del modo de ahorro de batería desde la aplicación haciendo referencia a la propiedad PowerManager.EnergySaverStatus . Es un valor de enumeración: EnergySaverStatus.Disabled, EnergySaverStatus.Off o EnergySaverStatus.On. Si la aplicación requiere actividad en segundo plano y no está establecida en "Siempre permitido", debe controlar EnergySaverStatus.On notificando al usuario que las tareas en segundo plano especificadas no se ejecutarán hasta que el ahorro de batería esté desactivado. Aunque la administración de actividades en segundo plano es el propósito principal de la característica ahorro de batería, la aplicación puede realizar ajustes adicionales para ahorrar energía aún más cuando el ahorro de batería está encendido. En el caso de que el ahorro de batería esté activado, la aplicación podría reducir el uso de animaciones, detener el sondeo de ubicación o retrasar las sincronizaciones y las copias de seguridad.

Optimización adicional de las tareas en segundo plano

A continuación se indican pasos adicionales que puede realizar al registrar las tareas en segundo plano para que sean más conscientes de la batería.

Usar un desencadenador de mantenimiento

Se puede usar un objeto MaintenanceTrigger en lugar de un objeto SystemTrigger para determinar cuándo se inicia una tarea en segundo plano. Las tareas que usan desencadenadores de mantenimiento solo se ejecutarán cuando el dispositivo esté conectado a la alimentación de CA y se les permita ejecutar durante más tiempo. Consulte Uso de un desencadenador de mantenimiento para obtener instrucciones.

Usa el tipo de condición de sistema BackgroundWorkCostNotHigh

Se deben cumplir las condiciones del sistema para que se ejecuten tareas en segundo plano (consulte Establecer condiciones para ejecutar una tarea en segundo plano para obtener más información). El costo del trabajo en segundo plano es una medida que denota el impacto energético relativo de la ejecución de la tarea en segundo plano. Una tarea que se ejecuta cuando el dispositivo está conectado a la alimentación de CA se marcaría como bajo (poco/sin impacto en la batería). Una tarea que se ejecuta cuando el dispositivo está encendido con la batería apagada se marca como alta porque probablemente hay poca actividad de programa que se ejecuta en el dispositivo en el momento, por lo que la tarea en segundo plano tendría un costo relativo mayor. Una tarea que se ejecuta cuando el dispositivo está encendido con la batería con la pantalla activada está marcada como media, porque probablemente ya hay alguna actividad de programa en ejecución, y la tarea en segundo plano agregaría un poco más al costo de energía. La condición del sistema BackgroundWorkCostNotHigh simplemente retrasa la ejecución de tu tarea hasta que la pantalla esté encendida o el dispositivo esté conectado a la corriente alterna.

Probar la eficiencia de la batería

Asegúrese de probar la aplicación en dispositivos reales para cualquier escenario de consumo de energía alto. Es una buena idea probar la aplicación en muchos dispositivos diferentes, con ahorro de batería activado y apagado, y en entornos de diferente intensidad de red.