¿Las aplicaciones de iOS se ejecutan en segundo plano?

15

Digamos que si instalo una docena de juegos y utilidades en el iPhone, y luego también instalo aplicaciones de chat como WhatsApp, WeChat, Line, luego

  1. Cuando se reinicia el iPhone, ¿pueden todas estas aplicaciones iniciarse también y ocupar tiempo valioso del procesador y recursos del sistema?

  2. ¿Qué sucede si inicio una aplicación, y luego explícitamente toco dos veces el botón de Inicio y luego deslizo la aplicación hacia afuera (para salir)? ¿Puede o parte de él seguir ejecutándose en segundo plano ahora o más tarde?

  3. Dado que los mensajes de WhatsApp, WeChat, Line y Facebook me notifican de nuevos mensajes, parece que se ejecutarán tan pronto como reinicie mi iPhone. ¿Están usando mi CPU en segundo plano? Además, parece que incluso si apago la actualización de la aplicación en la configuración, las aplicaciones posiblemente aún puedan ejecutarse en segundo plano . ¿Es eso cierto?

Una gran preocupación es que si instalo todas las variaciones de Angry Birds, algunos juegos de ruleta de casino y todas las versiones de Cut the Rope y no me molesto en eliminarlas (el teléfono tiene 128 GB de almacenamiento). Entonces, ¿todas estas aplicaciones se ejecutarán posiblemente en el momento de reinicio del iPhone o de forma aleatoria y ocuparán el tiempo del procesador y los recursos del sistema (como la RAM)?

nonopolaridad
fuente
1
He publicado una guía muy larga sobre todo lo que hay que saber aquí, ¡espero que realmente te ayude!
owlswipe
¿Me ayudó mi respuesta? ¡Por favor, acéptelo o dígame qué le pasa para que pueda mejorarlo! :)
owlswipe

Respuestas:

29

Apple tiene pautas muy estrictas sobre cómo y cuándo las aplicaciones pueden ejecutarse en segundo plano.

Los siguientes son los únicos escenarios en los que una aplicación de iOS de terceros puede usar la CPU en segundo plano.

Recuperación de fondo

Cualquier aplicación puede usar "Recuperación en segundo plano" (también conocido como Actualización de la aplicación en segundo plano) para recuperar contenido en segundo plano durante unos segundos, aproximadamente una vez al día (en un marco de tiempo regulado por iOS, fuera del control del desarrollador). Background Fetch consume muy poca batería y CPU, y es utilizado principalmente por las aplicaciones de noticias / clima / redes sociales / correo para actualizar su feed para que cuando abra la aplicación no esté completamente desactualizada.

Audio, Voz sobre IP, Comunicaciones Bluetooth

Si una aplicación reproduce audio en segundo plano (a través de AirPlay o a través de los altavoces del teléfono), iOS permite que se ejecute en segundo plano hasta que deje de reproducir la música; si una aplicación le permite realizar llamadas telefónicas basadas en datos (como llamadas de Whatsapp o Skype) en segundo plano, puede permanecer activa, utilizando la CPU durante la duración de la llamada; y si una aplicación se comunica con los accesorios Bluetooth (como la aplicación Pebble que se comunica con el Pebble Smartwatch), puede permanecer despierta permanentemente en segundo plano.

Descargas de kiosco, notificaciones remotas

Las aplicaciones de Play Kiosco (siempre que Apple las apruebe como una organización de noticias importante y se muestren en la parte de Play Store de Play Kiosco) pueden descargar contenido nuevo en segundo plano; cualquier aplicación (como la aplicación The New York Times) que necesite mostrar notificaciones generadas fuera de la aplicación (por ejemplo, notificaciones de noticias de última hora), puede permanecer despierta en segundo plano para recibir tales notificaciones "remotas".

Actualizaciones de ubicación

Si permite que una aplicación "siempre" use su ubicación (es decir, en segundo plano), puede estar activa en cualquier momento en segundo plano. Las aplicaciones como Facebook, Find Friends y otras usan esto para actualizar la información relacionada con la ubicación, aunque otras aplicaciones pueden usarla para usarla subrepticiamente para realizar tareas en segundo plano (pero solo si les permite específicamente acceder a su ubicación).


Una idea errónea muy común es que "deslizar hacia arriba" en una aplicación para matarla impide que funcione en segundo plano: esto es totalmente falso. Las aplicaciones que tienen una de las siete razones anteriores para operar en segundo plano pueden operar en segundo plano, independientemente de que se "deslice" sobre ellas, y las aplicaciones que no tienen una de estas siete razones no pueden funcionar cuando no en la pantalla incluso si no los matas.

Otra idea falsa (¡que parece que tiene!) Es que al desactivar la "Actualización de la aplicación en segundo plano" se detendrá el funcionamiento de una aplicación en segundo plano; de hecho, eso solo deshabilita a una aplicación de usar Background Fetch, pero puede funcionar en segundo plano si tiene una de las otras seis razones también, independientemente de la alternancia de actualización de la aplicación.


Entonces, ¿las aplicaciones que ha instalado utilizan CPU, memoria, batería o datos en segundo plano? ¡Puedes averiguarlo fácilmente! Ve a Settingstu iPhone, busca la Batterysección y echa un vistazo. Si una aplicación muestra "Actividad de fondo" debajo de su nombre, entonces ha estado usando CPU en segundo plano; de lo contrario, no ha estado haciendo nada en segundo plano.

Aquí hay una captura de pantalla de ejemplo:

ingrese la descripción de la imagen aquí

En este iPhone, Podcasts ha estado funcionando en segundo plano, pero ninguna de las otras aplicaciones lo ha hecho. Entrar en la configuración de la batería es una forma sencilla de saber si Angry Birds se ha estado ejecutando en segundo plano.


Entonces, para responder sus preguntas directamente:

Cuando se reinicia el iPhone, ¿pueden todas estas aplicaciones iniciarse también y ocupar tiempo valioso del procesador y recursos del sistema?

Solo si están configurados específicamente para ejecutarse en segundo plano, puede verificar si lo han estado haciendo en la configuración de la batería de su iPhone.

¿Qué sucede si inicio una aplicación, y luego explícitamente toco dos veces el botón de Inicio y luego deslizo la aplicación hacia afuera (para salir)? ¿Puede o parte de él seguir ejecutándose en segundo plano ahora o más tarde?

Si. Por ejemplo, si Facebook usa servicios de ubicación (como lo hace), deslizar hacia arriba para matar la aplicación de Facebook no impedirá que use su ubicación en segundo plano, y mientras usa su ubicación, puede realizar casi cualquier otra tarea en El fondo también.

Dado que los mensajes de WhatsApp, WeChat, Line y Facebook me notifican de nuevos mensajes, parece que se ejecutarán tan pronto como reinicie mi iPhone. ¿Utilizo mi CPU en segundo plano? Además, parece que incluso si apago la actualización de la aplicación en la configuración, las aplicaciones posiblemente aún puedan ejecutarse en segundo plano. ¿Es eso cierto?

Whatsapp, WeChat, Line, Hangouts, FB Messenger y otras aplicaciones de chat utilizan la remote notificationscapacidad de buscar nuevos mensajes en segundo plano de vez en cuando. Este es el comportamiento esperado (y puede verificar cuánto lo están haciendo verificando el uso de la batería aplicación por aplicación, nuevamente en la configuración de la batería), y no debería agotar demasiado la batería. Y, de hecho, desactivar App Refresh para esas aplicaciones no tendrá ningún efecto, ya que las aplicaciones usan notificaciones remotas y no la búsqueda de fondo para operar en segundo plano.


TL; DR: las aplicaciones pueden usar los recursos de su teléfono en segundo plano, puede ver cuánto están haciendo en Settings-> Battery.


Fuentes de información:

búho
fuente
2
es bastante bueno ... ¿puedes citar alguna referencia / fuente sobre esto?
nonopolaridad
2
@ 太極 者 無極 而 生 Toda la información proviene de mi conocimiento personal como desarrollador de iOS, pero también he agregado algunas fuentes al final de mi respuesta.
owlswipe
1
Excelente respuesta Como elemento de trivia, Apple deshabilitó las notificaciones remotas para aplicaciones de cierre forzado en iOS 7. Pero dado que las personas que expulsaron compulsivamente todas sus aplicaciones se quejaron de no recibir notificaciones, eso se volvió a colocar en iOS 7.1 o 7.2.
2
@Phong Me gusta, ¡no lo sabía! Gracias: D.
owlswipe
3
No es correcto que el cierre forzado no esté relacionado con si las aplicaciones pueden usar la ejecución en segundo plano. Apple en BE : "[iOS] no relanza las aplicaciones después de ... forzar el cierre por parte del usuario. Una excepción son las aplicaciones de ubicación ... en iOS 8 y versiones posteriores ... [De lo contrario] el usuario debe iniciar [it] explícitamente o reiniciar ... antes de que [iOS] la aplicación se inicie automáticamente en segundo plano ".
tubedogg