Todos conocemos la lección "multitarea = capacidad de realizar varios procesos al mismo tiempo". Lo utilizamos en nuestros ordenadores sin ser especialmente conscientes de su presencia. El cambio entre aplicaciones o ventanas de una aplicación se realiza (para nosotros) en tiempo real y damos por sentada esta capacidad del sistema operativo.
Tarea diferente
El sistema operativo asigna el procesador a todas las aplicaciones en pequeños intervalos de tiempo. Estos periodos de tiempo son tan pequeños que no podemos notarlos, por lo que parece como si todas las aplicaciones estuvieran usando el procesador al mismo tiempo. Podríamos pensar que sí multitarea en iOS 4 Funciona exactamente igual. No es tan. La razón principal es, por supuesto, la capacidad de la batería. Si realmente todas las aplicaciones se dejaran ejecutándose en segundo plano, probablemente tendríamos que buscar un socket en unas horas.
La mayoría de las aplicaciones compatibles con iOS 4 se ponen en "modo suspendido" o se ponen en suspensión después de presionar el botón Inicio. Una analogía podría ser cerrar la tapa de una computadora portátil, que inmediatamente entra en modo de suspensión. Después de abrir la tapa, la computadora portátil se activa y todo está exactamente en el mismo estado que antes de cerrar la tapa. Además, hay aplicaciones que al pulsar el botón Home finalizan. Y con esto nos referimos a una terminación real. Los desarrolladores pueden elegir cuál de estos métodos utilizar.
Pero hay otra categoría de aplicaciones. Estas son las aplicaciones que realmente se ejecutan en segundo plano, aunque estés haciendo algo completamente diferente en tu iDevice. Skype es un buen ejemplo porque necesita una conexión a Internet constante. Otros ejemplos podrían ser aplicaciones que reproducen música de fondo (Pandora) o aplicaciones que requieren un uso constante del GPS. Sí, estas aplicaciones agotan la batería incluso cuando se ejecutan en segundo plano.
¿Dormir o derribar?
Ciertas aplicaciones compatibles con iOS 4, que deben ponerse en suspensión (ponerse en "modo suspendido") después de presionar el botón Inicio, continúan ejecutándose en segundo plano. Apple dio a los desarrolladores exactamente diez minutos para que la aplicación completara su tarea, cualquiera que fuera. Digamos que estás descargando un archivo en GoodReader. De repente alguien quiere llamarte y sólo tienes que aceptar esa llamada tan importante. La llamada no duró más de diez minutos, volverás a la aplicación GoodReader. Es posible que el archivo ya esté descargado o que aún se esté descargando. ¿Qué pasa si la llamada dura más de diez minutos? La aplicación, en nuestro caso GoodReader, tendrá que detener su actividad y decirle a iOS que puede ponerse en suspensión. Si no lo hace, el propio iOS la eliminará sin piedad.
Ahora ya conoce la diferencia entre la multitarea "móvil" y "de escritorio". Si bien la fluidez y la velocidad al cambiar entre aplicaciones son importantes para una computadora, la duración de la batería es siempre lo más importante para los dispositivos móviles. La multitarea también tuvo que adaptarse a este hecho. Por lo tanto, después de leer este artículo, si presiona el botón Inicio dos veces, ya no verá la "barra de aplicaciones ejecutándose en segundo plano", sino esencialmente sólo la "lista de aplicaciones utilizadas recientemente".
Autor: Daniel HruškaFuente: onemoretap.com
hmm, interesante :) Siempre pensé que siempre era similar a cómo se puede hacer en Unix. Que a la aplicación se le ha asignado cero tiempo de CPU y el proceso simplemente se encuentra en la memoria, se han asignado todos los recursos. así que tuve que presionar inicio dos veces y detener inmediatamente la aplicación para eliminarla. Entonces, ¿significa esto que incluso si hay un ícono de aplicación en la hoja oculta inferior, la aplicación todavía está cerrada hace mucho tiempo (después de 10 minutos)?
En la lista inferior, están simplemente las aplicaciones abiertas más recientemente, algunas de las cuales aún pueden ejecutarse, otras están suspendidas y otras se cierran por completo. Eliminar manualmente la aplicación de la lista tiene el "efecto secundario" de que si se está ejecutando (o se suspende), se finalizará.
La aplicación tiene que informarse a sí misma sobre esos 10 minutos extra y no se garantiza que los consiga.
Bueno, eso no me quitó la obsesión por cerrar la aplicación de la lista (¿y si accidentalmente consume recursos, verdad? :-D)
Tengo entendido que los 10 minutos son para aplicaciones que necesitan funcionar en segundo plano y no entran en la categoría de "skype, GPS y reproducción de música". Otras aplicaciones cambian al modo suspendido y permanecen en la memoria hasta que se necesita la memoria para otras cosas.
El modo suspendido tiene la ventaja de que si luego necesitas cerrar la aplicación, no perderás sus datos, todo se guardará en el momento de cambiar al modo suspendido.
o, en el caso de, por ejemplo, reproducción, el equivalente del comando bg / fg
¿Y qué pasa con el reproductor u otras aplicaciones que se ejecutan en segundo plano durante un período de tiempo determinado? Quiero decir, ¿puedo "elegir" como desarrollador o esto tiene que ser aprobado por Apple de alguna manera?
Para que la aplicación realmente se ejecute en segundo plano por tiempo ilimitado, debe realizar (registrar) una de las siguientes acciones:
– Utilizar servicios de localización (GPS)
– Reproducir música de fondo
– Utilice VOIP (Voz sobre IP)
Según el título (una mirada bajo el capó), esperaba que el artículo contuviera una explicación algo más extensa con detalles técnicos. Esto se parece más a una perex del artículo. Si es perex, ¿cuándo será la secuela? ¿Puedes obtener un reembolso? :-)
¿Y qué te gustaría saber con más detalle?
De un artículo con "bajo el capó" en el título, esperaría una descripción técnica detallada (el autor podría analizar, por ejemplo, los gastos generales al cambiar de aplicación o cómo se maneja el acceso simultáneo a los recursos del sistema), una comparación con otros modelos. (por ejemplo, con un iPhone con jailbreak). Es ideal respaldarlo con algunas medidas. Simplemente esperaba mucho más de un artículo que tiene "bajo el capó" en su título que esta descripción tan superficial.
¿Existe algún cliente icq que se ejecute continuamente en segundo plano como Skype y no corte la conexión?
la aplicación tiene 10 segundos para entrar en modo de suspensión, no 10 minutos... y durante este proceso, algunas partes pueden "colgarse" o no en los servicios backend, algunos de los cuales ya se han enumerado anteriormente; eso es lo que Apple llama "inteligente". "multitarea.... Entonces el sistema la derribó
La solicitud puede requerir tiempo adicional si se descarga, carga o procesa algo. No tiene nada que ver con GPS, VoIP o reproducción de música, que funcionan en modo minimalista por tiempo ilimitado.