Evitar reinicios de aplicaciones de lienzo en la aplicación móvil Power Apps

Cuando ejecuta una aplicación de lienzo en la aplicación móvil de Power Apps, se puede reiniciar por los siguientes motivos:

  • La aplicación está utilizando demasiada memoria total.
  • La aplicación está utilizando demasiada memoria o procesamiento al mismo tiempo.
  • La aplicación se mueve a segundo plano, ya sea cuando su aplicación específica usa un control nativo (como Agregar imagen o Escáner de códigos de barras), o la aplicación móvil de Power Apps se pone en segundo plano por parte del usuario.

Estas limitaciones de memoria y procesamiento, que son especialmente estrictas cuando la aplicación móvil de Power Apps se ejecuta en segundo plano, las impone el sistema operativo (Android o iOS). Si la aplicación usa más recursos de los que están disponibles en su dispositivo, la aplicación se reiniciará. Esto es similar a cuando se visita una página web grande y compleja, y el explorador web suspende la página porque consume demasiada potencia.

En dispositivos Android, este reinicio de la aplicación puede parecer un bloqueo porque la aplicación está completamente cerrada y se lleva al usuario a la pantalla de inicio del dispositivo.

Utiice este artículo para aprender a evitar reinicios de aplicaciones de lienzo en Power Apps para dispositivos móviles.

Consejos de prevención para usuarios finales

Si bien las mejoras más importantes generalmente las realizan los creadores de aplicaciones, aquí hay algunos consejos que los usuarios finales pueden usar para disminuir la ocurrencia de reinicios de aplicaciones:

  • En la aplicación móvil de Power Apps, en la página de perfil de usuario, seleccione Borrar caché para eliminar los datos guardados. Tenga en cuenta que esto solo debe hacerse cuando el usuario final tiene datos, ya que borrar el caché eliminará cualquier SaveData o caché de aplicaciones.
  • En los dispositivos Android, asegúrese de que la aplicación móvil de Power Apps tenga prioridad. Consulte el manual de su dispositivo para mantener la aplicación funcionando a través de configuraciones como la optimización de la batería y la configuración de suspensión de la aplicación.
  • Cierra todas las aplicaciones que se estén ejecutando, excepto la aplicación móvil de Power Apps, y elimine todos los datos innecesarios del dispositivo, como aplicaciones o imágenes que no se usen.
  • Si bien es engorroso, considere usar la aplicación más lentamente: haga una pequeña pausa entre las navegaciones de pantalla o después de tomar fotografías, guardar datos o cargarlos.

Consejos de prevención para creadores de aplicaciones

Los creadores de aplicaciones pueden realizar las mayores mejoras en la memoria para disminuir los reinicios de aplicaciones. Cuando cree una aplicación, recuerde optimizar la aplicación para que se ejecute en el dispositivo especificado más bajo que usarán sus usuarios finales y siga las mejores prácticas recomendadas de uso de recursos.

Nota

Dado que los reinicios de la aplicación son causados por el sistema operativo que restringe la cantidad de memoria y el procesamiento que puede hacer una aplicación, podría tomar una combinación de las mitigaciones sugeridas a continuación para minimizar los reinicios de las aplicaciones. Cuanta más memoria y procesamiento se puedan reducir, tanto en total como a la vez, menos probable será que se reinicie la aplicación.

Sugerencia

Puede conectar una sesión de aplicación móvil a Monitor para ver dónde su aplicación está realizando operaciones de procesamiento pesado o uso intensivo de memoria. Monitor es una herramienta que ofrece a los creadores una visión profunda de lo que hace una aplicación y cómo lo hace, al registrar todas las actividades clave que se producen en la aplicación mientras se ejecuta.

Problema Causa original Mitigación
La aplicación se reinicia al cargar una pantalla específica. Si una pantalla específica está ejecutando demasiadas fórmulas a la vez, la aplicación puede tener demasiado procesamiento y el sistema operativo puede reiniciarla. Limite la cantidad de controles de las pantallas y la cantidad de fórmulas que se ejecutan cuando se carga la pantalla, lo que puede requerir dividir las pantallas.

Evite la dependencia de control entre pantallas.

Evite que el usuario realice acciones durante los momentos de alto procesamiento. Por ejemplo, cuando se está cargando una gran galería con múltiples filtros y búsquedas.

Considere el uso de fórmulas con nombre.

Considere usar el ajuste de la aplicación Carga retrasada.
La aplicación se reinicia después de múltiples navegaciones de pantalla. Hay fugas de memoria en las pantallas, lo que hace que el uso de la memoria aumente a medida que el usuario navega por la aplicación. Active el ajuste de la aplicación Mantener las pantallas visitadas recientemente en la memoria . Si bien esto aumenta el uso total de la memoria a corto plazo, ya que la pantalla se conserva en la memoria, en múltiples navegaciones de pantalla, evitará pérdidas de memoria.
La aplicación se reinicia al hacer SaveData/LoadData o usar conexiones de datos. SaveData y las conexiones de datos aumentan la memoria total que utiliza la aplicación. SaveData también es una operación de mucho procesamiento. Introducir grandes cantidades de datos en la aplicación y guardar esos datos para uso sin conexión (especialmente el contenido multimedia y archivos) puede hacer que la aplicación sobrepase la memoria asignada, lo que hace que el sistema operativo reinicie la aplicación. Optimice la cantidad de datos introducidos en la aplicación a través de conexiones de datos y guardados a través de SaveData.

Reduzca la cantidad de llamadas SaveData cuando sea posible.

Activando el ajuste de la aplicación Selección de columna explícita y desactivando el ajuste de la aplicación Ámbito de registro de relaciones de uno a varios y de varios a varios también se puede ayudar a reducir los datos que llegan a la aplicación.
La aplicación se reinicia al usar el control Cámara. El control Cámara guarda la imagen capturada en memoria. Esto puede aumentar el uso de memoria de la aplicación, especialmente si laimgen capturada se guarda en variables o con SaveData, usando la propiedad OnStream. No guarde ninguna imagen más allá de la capturada más recientemente.

Use Foto en lugar de Secuencia para capturar solo imágenes cuando el usuario toca la cámara.

Si necesita usar Secuencia, establezca la propiedad StreamRate lo más alto posible, para reducir la cantidad de actualizaciones.
La aplicación se reinicia al usar el control Agregar imagen. El control Agregar imagen guarda el contenido multimedia seleccionado en la memoria. Debido al tamaño del contenido multimedia, esto puede causar una presión de memoria significativa. Considere cambiar dónde se captura el contenido multimedia.

Considere desactivar la propiedad UseMobileCamera para que los usuarios solo puedan seleccionar medios de la galería/biblioteca de fotos.

Considere usar el control Datos adjuntos (como parte de un formulario) para seleccionar solo archivos en lugar de capturarlos con la cámara.

Considere cambiar al control Cámara.
La aplicación se reinicia con controles nativos como Agregar imagen, Escáner de códigos de barras/Reader, Ver en RM, Cámara de medición, etc. Los controles nativos pueden poner la aplicación en segundo plano donde el sistema operativo tiene limitaciones más estrictas en la memoria antes de reiniciar la aplicación. Asegúrese de que todas las operaciones intensivas de memoria y procesamiento se hayan completado antes de usar estos controles. Por ejemplo, deshabilite el control Agregar imagen hasta que se complete cualquier operación SaveData.

Considere cambiar a un control diferente como Cámara en lugar de Agregar imagen.
Los reinicios de la aplicación ocurren para un subconjunto de dispositivos. Los dispositivos tienen diferentes cantidades de memoria y procesamiento disponibles. Como ejemplo, los dispositivos más antiguos son más propensos a reiniciar aplicaciones debido a su menor procesamiento disponible.

Tener otras aplicaciones en ejecución también puede reducir la cantidad de procesamiento disponible. Del mismo modo, otras aplicaciones instaladas y muchas fotos/medios guardados en el dispositivo pueden ocupar memoria, reduciendo lo que está disponible para la aplicación.
Recomiende a sus usuarios los consejos enumerados anteriormente en nuestra sección Consejos de prevención para usuarios finales.

Considere invertir en dispositivos que satisfagan las necesidades de rendimiento de su aplicación.
Los reinicios de la aplicación continúan ocurriendo. El uso de la memoria se ve afectado por la forma en que se crea la aplicación de lienzo. Asegúrese de que su aplicación siga las mejores prácticas para ayudar a garantizar el rendimiento, reducir el uso de la memoria y el procesamiento. Optimice su aplicación siguiendo los procedimientos recomendados siguientes.

Prodedimientos recomendados para crear aplicaciones de alto rendimiento