#989 A ver compañero, si te vas a despedir, no te despidas echando mierda...
He dicho que iOS desde la 4 ha mejorado el tema de la multitarea, pero no en el sentido que has entendido.
iOS4 ya implementa multitarea, pero mucho ojo, NO ES MULTITAREA REAL Y SOLO APLICACIONES QUE APPLE DIGA SOLO CUANDO SE ADAPTEN A CIERTOS REQUISITOS, por lo tanto avisaron que de momento SOLO se verian algunas aplicaciones Apple funcionando en multitarea.
Osea, a efectos practicos (Y TECNICOS) la multitarea es inexistente en iOS, ya que no es real, usan un truco que luego explicare, pero que ya adelanto que es un chapuzon, pero aqui, si cedes un pelo, y te vas, ya dicen que no tenias razon, pues me veo obligado a explicarlo.
Lo del push que pusistes, y ya explico un poco mas para el que no sepa, es un sistema de notificaciones, ¿por que?, pues por los pocos recursos de los que cuentan los moviles (ram basicamente), cuando una aplicacion esta funcionando en segundo plano, y el telefono necesita mas memoria, libera el programa guardando su estado, pero deja un demonio ejecutandose esperando eventos (imaginaros por ejemplo un programa de mensajeria que estas ejecutando en segundo plano), si en algun momento recibe un evento (por ejemplo, te escriben un mensaje y tu estabas jugando asi que el movil libero el programa de mensajeria) el demonio manda el evento push, y este evento le dice al sistema operativo del movil "mamonazo, arranca el programa de mensajeria que aqui llegan cosas para el", lo arranca, ejecuta el evento, y tu recibes el mensaje (seguramente liberando memoria de otro programa que esta en idle), por que al final si cerro el programa de mensajeria era por que iba justo de memoria, sino no lo libera.
Asi que esos sistemas de notificacion son programas que no consumen apenas recursos, pero gestionan todo para arrancar los programas que se necesiten en algun momento, vamos, en vez de dejar el programa entero, dejas un "avisador" y pagas lo que consume.
iOS usa un truco para la multitarea, en vez de ejecutar varios programas a la vez (que es lo que se llama multitarea) lo que hace es que va encendiendo y apagando aplicaciones simultaneamente, y guarda el ultimo estado de esta antes de apagarla para luego poder encenderla rapidamente sin que se note demasiado, NO USA LOS RECURSOS DEL SISTEMA PARA CONSEGUIR ESTO, osea, no puede tener 18 aplicaciones en paralelo, ya que no podria almacenar los recursos suficientes.
Android sin embargo ejecuta todas las tareas que quieras en paralelo sin problemas, la cpu reparte tiempo de ejcucion como si fuese un PC normal y corriente, y se usan los recursos del mismo, no un triste fake.
La diferencia basica es que no usan la CPU para la multitarea, sino que lo hace el iOS, y ese es un lastre enorrrrme, ya que la CPU guarda contextos de ejecucion que son exclusivos de la cpu y no de la aplicacion, asi que son muchisimos menos datos, los cambios de contexto (cambio de tarea) es rapidisimo, y todo funciona de forma transparente al resto de programas.
Por eso es por lo que Apple tiene que supervisar y dar permisos para poder ejecutar en su multitarea particular, por que si todos la usasen, el movil estaria frito en 2 segundos.
A dia de hoy, la unica multitarea de iOS es:
-Audio en segundo plano.
-Voz sobre ip.
-Localizacion en segundo plano.
-Notificaciones (sino no funcionaria nada).
-Finalizacion de tareas (imprescindible).
-Cambio de tareas (lo que guarda el entorno de ejecucion en los cambios de tarea para volver rapidamente).
Espero que esta explicacion (que seamos sinceros, pretendia ahorrarme) sirva de algo, y pueda despedirme sin remordimientos de ver como tergiversan mis palabras.
Asi que no tio, NO tenias razon, pero por ser minimamente condescendiente con quien no se debe, pasa lo que pasa.