Anuncio cerrado

Todavía hay mucha gente que no sabe cómo funciona la multitarea en iOS. Sin embargo, para empezar es necesario señalar que no se trata de una verdadera multitarea, sino de una solución muy inteligente que no sobrecarga ni al sistema ni al usuario.

A menudo se pueden escuchar supersticiones de que las aplicaciones que se ejecutan en segundo plano en iOS llenan la memoria operativa, lo que provoca una desaceleración del sistema y una mayor duración de la batería, por lo que el usuario debe desactivarlas manualmente. La barra multitarea en realidad no contiene una lista de todos los procesos en ejecución en segundo plano, sino solo las aplicaciones iniciadas más recientemente. Por lo tanto, el usuario no tiene que preocuparse por los procesos que se ejecutan en segundo plano, excepto en algunos casos. Cuando pulsas el botón Home, la aplicación suele entrar en modo de suspensión o cerrarse, de modo que ya no carga el procesador ni la batería y, si es necesario, libera la memoria necesaria.

Por lo tanto, esto no es una multitarea en toda regla cuando tienes docenas de procesos en ejecución: siempre solo se ejecuta una aplicación en primer plano, que se pausa o se apaga por completo si es necesario. Sólo unos pocos procesos secundarios se ejecutan en segundo plano. Es por eso que rara vez encontrará una falla en una aplicación en iOS; por ejemplo, Android está abrumado con aplicaciones en ejecución de las que el usuario debe ocuparse. Esto, por un lado, hace que trabajar con el dispositivo sea desagradable y, por otro, provoca, por ejemplo, un inicio lento y transiciones entre aplicaciones.

Tipo de tiempo de ejecución de la aplicación

La aplicación en su dispositivo iOS se encuentra en uno de estos 5 estados:

  • Correr: la aplicación se inicia y se ejecuta en primer plano
  • Fondo: todavía está ejecutándose pero ejecutándose en segundo plano (podemos usar otras aplicaciones)
  • Suspendido: Todavía usando RAM pero no funcionando
  • Inactivo: la aplicación se está ejecutando pero hay comandos indirectos (por ejemplo, cuando bloquea el dispositivo con la aplicación en ejecución)
  • No corras: La aplicación ha finalizado o no ha comenzado

La confusión llega cuando la app pasa a un segundo plano para no molestar. Cuando presiona el botón Inicio o usa el gesto para cerrar la aplicación (iPad), la aplicación pasa a segundo plano. La mayoría de las aplicaciones se suspenden en segundos (se almacenan en la RAM del iDevice para que puedan iniciarse rápidamente, no cargan tanto el procesador y, por lo tanto, ahorran batería). Se podría pensar que si una aplicación continúa usando memoria, tiene eliminarlo manualmente para liberarlo. Pero no tienes que hacer eso, porque iOS lo hará por ti. Si tienes una aplicación exigente suspendida en segundo plano, como un juego que utiliza una gran cantidad de RAM, iOS la eliminará automáticamente de la memoria cuando sea necesario y podrás reiniciarla tocando el icono de la aplicación.

Ninguno de estos estados se refleja en la barra multitarea, el panel solo muestra una lista de aplicaciones iniciadas recientemente, independientemente de si la aplicación está detenida, pausada o ejecutándose en segundo plano. También puede notar que la aplicación que se está ejecutando actualmente no aparece en el panel Multitarea.

Tarea en segundo plano

Normalmente, cuando presionas el botón Inicio, la aplicación se ejecutará en segundo plano y, si no la estás utilizando, se pausará automáticamente en cinco segundos. Así, si estás descargando un podcast, por ejemplo, el sistema lo evalúa como una aplicación en ejecución y retrasa la finalización diez minutos. Después de diez minutos como máximo, el proceso se libera de la memoria. En resumen, no tienes que preocuparte por interrumpir tu descarga presionando el Botón Inicio, si no tarda más de 10 minutos en completarla.

Ejecución indefinida en segundo plano.

En caso de inactividad, el sistema finaliza la aplicación en cinco segundos y, en el caso de descargas, la finalización se retrasa diez minutos. Sin embargo, hay una pequeña cantidad de aplicaciones que requieren ejecutarse en segundo plano. Aquí hay algunos ejemplos de aplicaciones que pueden ejecutarse en segundo plano indefinidamente en iOS 5:

  • Aplicaciones que reproducen sonido y deben interrumpirse por un tiempo (pausar la música durante una llamada telefónica, etc.),
  • Aplicaciones que rastrean su ubicación (software de navegación),
  • Aplicaciones que reciben llamadas VoIP, por ejemplo si usas Skype, puedes recibir una llamada incluso cuando la aplicación está en segundo plano.
  • Descargas automáticas (por ejemplo, Quiosco).

Todas las aplicaciones deben cerrarse si ya no realizan una tarea (como descargas en segundo plano). Sin embargo, existen excepciones que se ejecutan en segundo plano de forma continua, como la aplicación de correo nativa. Si se ejecutan en segundo plano, consumen memoria, uso de CPU o reducen la duración de la batería.

Las aplicaciones que pueden ejecutarse en segundo plano de forma indefinida pueden hacer cualquier cosa mientras se ejecutan, desde reproducir música hasta descargar nuevos episodios de Podcast.

Como mencioné antes, el usuario nunca necesita cerrar las aplicaciones que se ejecutan en segundo plano. La única excepción a esto es cuando una aplicación que se ejecuta en segundo plano falla o no se reactiva correctamente. Luego, el usuario puede cerrar las aplicaciones manualmente en la barra multitarea, pero esto rara vez sucede.

Entonces, en general, no es necesario administrar procesos en segundo plano porque el sistema se encargará de ellos por sí mismo. Por eso iOS es un sistema tan nuevo y rápido.

Desde la perspectiva de un desarrollador

La aplicación puede reaccionar con un total de seis estados diferentes como parte de la multitarea:

1. aplicaciónRenunciaráActiva

Traducido, este estado significa que la aplicación dejará de ser la aplicación activa (es decir, la aplicación en primer plano) en el futuro (en cuestión de unos pocos milisegundos). Esto sucede, por ejemplo, al recibir una llamada mientras se usa la aplicación, pero al mismo tiempo, este método también provoca este estado antes de que la aplicación pase a segundo plano, por lo que debes tener en cuenta estos cambios. Este método también es adecuado para que, por ejemplo, suspenda todas las actividades que está realizando cuando hay una llamada entrante y espere hasta que finalice la llamada.

2. aplicaciónDidEnterBackground

El estado indica que la aplicación ha pasado a segundo plano. Los desarrolladores deben usar este método para suspender todos los procesos que no necesariamente necesitan ejecutarse en segundo plano y borrar la memoria de datos no utilizados y otros procesos, como expirar temporizadores, borrar imágenes cargadas de la memoria que no necesariamente serán necesarias o cerrar. conexiones con servidores, a menos que sea crítico que la aplicación complete las conexiones en segundo plano. Cuando se invoca el método en una aplicación, esencialmente se debe utilizar para suspender completamente la aplicación si no es necesario que una parte de ella se ejecute en segundo plano.

3. la aplicación entrará en primer plano

Este estado es lo opuesto al primer estado, donde la aplicación pasará al estado activo. El estado simplemente significa que la aplicación inactiva se reanudará desde el fondo y aparecerá en primer plano en los próximos milisegundos. Los desarrolladores deben utilizar este método para reanudar cualquier proceso que estuvo inactivo mientras la aplicación estaba en segundo plano. Se deben restablecer las conexiones a los servidores, restablecer los temporizadores, cargar imágenes y datos en la memoria y otros procesos necesarios pueden reanudarse justo antes de que el usuario vuelva a ver la aplicación cargada.

4. la aplicación se volvió activa

El estado indica que la aplicación acaba de activarse después de ser restaurada al primer plano. Este es un método que se puede utilizar para realizar ajustes adicionales en la interfaz de usuario o para restaurar la UI a su estado original, etc. En realidad, esto sucede en el momento en que el usuario ya ve la aplicación en la pantalla, por lo que es necesario Determine con precaución lo que sucede en el método de este y en el método anterior. Se llaman uno tras otro con una diferencia de unos pocos milisegundos.

5. la aplicación terminará

Este estado ocurre unos milisegundos antes de que se cierre la aplicación, es decir, antes de que la aplicación finalice realmente. Ya sea manualmente desde la multitarea o al apagar el dispositivo. El método debe utilizarse para guardar los datos procesados, finalizar todas las actividades y eliminar los datos que ya no serán necesarios.

6. applicationDidReceiveMemoryWarning

Es el último estado el que más se discute. Se encarga de, en caso de ser necesario, eliminar la aplicación de la memoria de iOS si utiliza recursos del sistema de forma innecesaria. No sé específicamente qué hace iOS con las aplicaciones en segundo plano, pero si necesita una aplicación para liberar recursos a otros procesos, le solicita que libere los recursos que tenga con una advertencia de memoria. Entonces este método se llama en la aplicación. Los desarrolladores deben implementarlo para que la aplicación renuncie a la memoria que ha asignado, guarde todo lo que está en progreso, borre los datos innecesarios de la memoria y, por lo demás, libere memoria adecuadamente. Es cierto que muchos desarrolladores, incluso principiantes, no piensan ni entienden estas cosas, y entonces puede suceder que su aplicación amenace la duración de la batería y/o consuma innecesariamente recursos del sistema, incluso en segundo plano.

Verdikt

Estos seis estados y sus métodos asociados son el trasfondo de toda "multitarea" en iOS. Es un gran sistema, siempre y cuando los desarrolladores no ignoren el hecho de que es necesario ser responsables de lo que la aplicación arroja en los dispositivos de sus usuarios, si se minimizan o reciben advertencias del sistema, etc.

Fuente: macworld.com

Autores: Jakub Požárek, Martin Doubek (ArnieX)

 
¿Tú también tienes algún problema que resolver? ¿Necesita asesoramiento o quizás encontrar la aplicación adecuada? No dudes en contactar con nosotros a través del formulario del apartado Asesoramiento, la próxima vez responderemos a tu pregunta.

.