Las aplicaciones no funcionan correctamente en segundo plano

Tengo un iPhone 5C con iOS 10 y tengo varias aplicaciones que se supone que deben hacer cosas en segundo plano; específicamente, estoy pensando en Google Photos, IFTTT y Android Wear, aunque puede haber más que no tengo. notado todavía - como FB Messenger, Allo, Duo, Skype, Life360, Hiya, etc...

Por ejemplo, se supone que Google Fotos hace una copia de seguridad automática de las fotos de mi cámara, se supone que IFTTT realiza acciones en todos los recordatorios y capturas de pantalla recién creados, y se supone que Android Wear se conecta a mi reloj LG.

En mi antiguo teléfono Android, simplemente hacían lo suyo, ya sea que la aplicación se estuviera ejecutando o no. En iPhone, aparentemente tienes que abrir las aplicaciones y dejarlas ejecutándose en segundo plano para que se comporten.

Sin embargo, para cada uno de los tres que he enumerado, parecen funcionar solo como se esperaba durante un tiempo limitado (no tengo idea de cuánto tiempo), antes de que dejen de funcionar. Por ejemplo, agrego un recordatorio, tomo una foto o tomo una captura de pantalla, y las acciones no suceden, aunque IFTTT y Google Photos muestran que se están ejecutando si hojeo las aplicaciones abiertas.

Selecciono la aplicación IFTTT o Google Photos al día siguiente de la lista de aplicaciones abiertas e inmediatamente comienzan las acciones. Lo mismo para mi reloj: funcionará durante medio día más o menos, luego de repente se niega a conectarse hasta que cambie a la aplicación Android Wear en el teléfono, luego se conecta de inmediato.

La actualización de la aplicación en segundo plano está habilitada en todas estas aplicaciones.

Esta pregunta parece indicar que estas aplicaciones deberían funcionar. Si no fueran aplicaciones populares, culparía a las propias aplicaciones, pero dudo que Google e IFTTT dejarían un gran vacío en sus productos.

¿Hay otra configuración que deba mirar? ¿Existe tal vez alguna limitación de CPU o memoria que bloquea estas aplicaciones que se resolverán con un teléfono más nuevo y potente?

Respuestas (1)

Las aplicaciones que se muestran como "abiertas" pero que no son la aplicación en primer plano están en estado Suspendido (descrito a continuación), con un par de excepciones. Por lo tanto, las aplicaciones que está viendo en el conmutador de aplicaciones generalmente no están haciendo nada activamente.

A nivel general, estos son los estados en los que puede estar una aplicación en iOS.

No ejecutándose : la aplicación no se ha iniciado o se estaba ejecutando, pero el sistema la canceló.

Inactivo : la aplicación se ejecuta en primer plano, pero actualmente no recibe eventos. (Sin embargo, puede estar ejecutando otro código). Una aplicación generalmente permanece en este estado solo brevemente mientras cambia a un estado diferente.

Activo : la aplicación se ejecuta en primer plano y recibe eventos. Este es el modo normal para aplicaciones en primer plano.

Fondo : la aplicación está en segundo plano y ejecutando código. La mayoría de las aplicaciones entran en este estado brevemente antes de ser suspendidas. Sin embargo, una aplicación que solicita un tiempo de ejecución adicional puede permanecer en este estado durante un período de tiempo. Además, una aplicación que se inicia directamente en segundo plano entra en este estado en lugar del estado inactivo. Para obtener información sobre cómo ejecutar código en segundo plano, consulte Ejecución en segundo plano.

Suspendido : la aplicación está en segundo plano pero no está ejecutando código. El sistema mueve las aplicaciones a este estado automáticamente y no las notifica antes de hacerlo. Mientras está suspendida, una aplicación permanece en la memoria pero no ejecuta ningún código. Cuando ocurre una condición de poca memoria, el sistema puede purgar las aplicaciones suspendidas sin previo aviso para hacer más espacio para la aplicación en primer plano.

La ejecución en segundo plano es posible, como se indicó anteriormente, pero solo para casos de uso específicos:

  • Aplicaciones que reproducen contenido audible para el usuario en segundo plano, como una aplicación de reproductor de música
  • Aplicaciones que graban contenido de audio en segundo plano
  • Aplicaciones que mantienen a los usuarios informados de su ubicación en todo momento, como una aplicación de navegación
  • Aplicaciones que admiten Voz sobre Protocolo de Internet (VoIP)
  • Aplicaciones que necesitan descargar y procesar contenido nuevo regularmente
  • Aplicaciones que reciben actualizaciones periódicas de accesorios externos

Hay otro caso, que se está descargando en segundo plano. Sin embargo, este es un caso especial, porque la aplicación en sí aún está suspendida y el proceso de descarga se transfiere al sistema, en caso de que el sistema deba finalizar la aplicación para recuperar recursos.

Específicamente con Google Photos, la aplicación debería estar en estado Activo, lo que significa que el teléfono está desbloqueado y en primer plano, para encontrar cualquier foto que deba cargarse. (Después de que tenga una lista de ellos, es posible que pueda pasar las cargas reales al sistema para la ejecución en segundo plano, pero no sé si así es como realmente funciona).

Para IFTTT, es probable que tenga que estar en primer plano para ejecutar recetas que dependen de elementos específicos de iOS (es decir, recordatorios). Podría calificar para la ejecución en segundo plano en "Aplicaciones que mantienen a los usuarios informados de su ubicación en todo momento", pero tal vez no (aunque tiene activadores basados ​​en la ubicación).

La aplicación Android Wear debe calificar en "Aplicaciones que reciben actualizaciones periódicas" para la ejecución en segundo plano. Dado que funciona parte del tiempo, parece estar configurado para hacer eso. En el caso de esa aplicación, supongo que el sistema la cancelará para recuperar recursos.

Un dispositivo más nuevo con más recursos definitivamente no dañaría la situación (especialmente para Android Wear, apuesto), pero algo de esto se debe a la forma en que funciona iOS para conservar los recursos del sistema (y, en consecuencia, la duración de la batería).

Fantástica lectura, gracias. Sin jailbreak, supongo que no hay forma de manipular esto para obligar a una aplicación a pasar a primer plano de vez en cuando automáticamente, así que supongo que me mantendré atento a esto y tal vez busque otras soluciones. Muchas gracias por el detalle.