Pechar anuncio

Aínda hai moita xente que non sabe como funciona a multitarefa en iOS. Para comezar, non obstante, cómpre sinalar que non se trata dunha auténtica multitarefa, senón dunha solución moi intelixente que non sobrecarga ao sistema nin ao usuario.

Moitas veces pódese escoitar supersticións de que as aplicacións que se executan en segundo plano en iOS enchen a memoria operativa, o que leva á ralentización do sistema e á duración da batería, polo que o usuario debería desactivalas manualmente. A barra de multitarefa non contén realmente unha lista de todos os procesos en segundo plano en execución, senón só as aplicacións lanzadas máis recentemente. Polo tanto, o usuario non ten que preocuparse polos procesos que se executan en segundo plano, excepto nalgúns casos. Cando se preme o botón Inicio, a aplicación adoita entrar en suspensión ou pecharse, de xeito que xa non carga o procesador nin a batería e libera a memoria necesaria se é necesario.

Polo tanto, non se trata dunha multitarefa completa cando tes decenas de procesos en execución. Só se está a executar unha aplicación en primeiro plano, que está en pausa ou desactivada por completo se é necesario. Só algúns procesos secundarios execútanse en segundo plano. É por iso que raramente atoparás un fallo de aplicación en iOS, por exemplo, Android está desbordado coas aplicacións en execución das que o usuario ten que coidar. Por unha banda, isto fai desagradable traballar co dispositivo e, por outra banda, provoca, por exemplo, un inicio lento e transicións entre aplicacións.

Tipo de tempo de execución da aplicación

A aplicación do teu dispositivo iOS está nun destes 5 estados:

  • Correndo: a aplicación iníciase e execútase en primeiro plano
  • Antecedentes: aínda está en execución pero en segundo plano (podemos usar outras aplicacións)
  • Suspendido: Aínda usando RAM pero non funcionando
  • Inactivo: a aplicación está en execución pero comandos indirectos (por exemplo, cando bloquea o dispositivo coa aplicación en execución)
  • Non funcionando: A aplicación rematou ou non comezou

A confusión chega cando a aplicación pasa a un segundo plano para non molestar. Cando preme o botón Inicio ou usa o xesto para pechar a aplicación (iPad), a aplicación pasa a un segundo plano. A maioría das aplicacións suspéndense en segundos (Gárdanse na memoria RAM do iDevice para que se poidan iniciar rapidamente, non cargan tanto o procesador e, polo tanto, aforran batería) Podes pensar que se unha aplicación segue a usar memoria, para eliminalo manualmente para liberalo. Pero non tes que facelo, porque iOS farao por ti. Se tes unha aplicación esixente suspendida en segundo plano, como un xogo que usa unha gran cantidade de RAM, iOS eliminaraa automaticamente da memoria cando sexa necesario e podes reiniciala tocando a icona da aplicación.

Ningún destes estados se reflicte na barra de multitarefa, o panel só mostra unha lista de aplicacións lanzadas recentemente independentemente de se a aplicación está detida, pausada ou en execución en segundo plano. Tamén pode notar que a aplicación que se está a executar actualmente non aparece no panel Multitarefa

Tarefas de fondo

Normalmente, ao premer o botón Inicio, a aplicación executarase en segundo plano e, se non a estás a usar, farase unha pausa automaticamente dentro de cinco segundos. Entón, se estás a descargar un podcast, por exemplo, o sistema avalíao como unha aplicación en execución e atrasa a terminación en dez minutos. Despois de dez minutos como moi tarde, o proceso é liberado da memoria. En resumo, non tes que preocuparte por interromper a descarga premendo o botón Inicio, se non leva máis de 10 minutos completala.

Carreira indefinida en segundo plano

No caso de inactividade, o sistema finaliza a aplicación nun prazo de cinco segundos, e no caso de descargas, a terminación retrasa dez minutos. Non obstante, hai un pequeno número de aplicacións que requiren executarse en segundo plano. Aquí tes algúns exemplos de aplicacións que poden executarse en segundo plano indefinidamente en iOS 5:

  • Aplicacións que reproducen son e deben ser interrompidas durante un tempo (pausa a música durante unha chamada telefónica, etc.),
  • Aplicacións que rastrexan a súa localización (software de navegación),
  • Aplicacións que reciben chamadas VoIP, por exemplo, se usa Skype, pode recibir unha chamada aínda que a aplicación estea en segundo plano.
  • Descargas automáticas (por exemplo, Kiosco).

Todas as aplicacións deberían pecharse se xa non están a realizar unha tarefa (como descargas en segundo plano). Non obstante, hai excepcións que se executan continuamente en segundo plano, como a aplicación nativa de correo. Se se executan en segundo plano, ocupan memoria, uso da CPU ou reducen a duración da batería

As aplicacións que poden executarse en segundo plano indefinidamente poden facer calquera cousa que fagan mentres se executan, desde reproducir música ata descargar novos episodios de podcast.

Como mencionei antes, o usuario nunca necesita pechar as aplicacións que se executan en segundo plano. A única excepción a isto é cando unha aplicación que se executa en segundo plano falla ou non se esperta correctamente do sono. O usuario pode entón pechar as aplicacións manualmente na barra multitarefa, pero isto ocorre raramente.

Polo tanto, en xeral, non é necesario xestionar os procesos en segundo plano porque o sistema encargarase deles. É por iso que iOS é un sistema tan novo e rápido.

Desde a perspectiva dun desenvolvedor

A aplicación pode reaccionar cun total de seis estados diferentes como parte da multitarefa:

1. applicationWillResignActive

En tradución, este estado significa que a aplicación renunciará como aplicación activa (é dicir, a aplicación en primeiro plano) no futuro (uns poucos milisegundos). Isto ocorre, por exemplo, cando se recibe unha chamada mentres se utiliza a aplicación, pero ao mesmo tempo, este método tamén provoca este estado antes de que a aplicación pase a un segundo plano, polo que cómpre ter en conta estes cambios. Este método tamén é axeitado para que, por exemplo, suspenda todas as actividades que está a realizar cando hai unha chamada entrante e agarde ata o final da chamada.

2. applicationDidEnterBackground

O estado indica que a aplicación pasou a un segundo plano. Os desenvolvedores deben usar este método para suspender todos os procesos que non necesariamente precisan executarse en segundo plano e borrar a memoria dos datos non utilizados e doutros procesos, como temporizadores que caducan, borrar imaxes cargadas da memoria que non necesariamente serán necesarias ou pechar. conexións con servidores, a non ser que sexa fundamental que a aplicación complete as conexións en segundo plano. Cando se chama o método na aplicación, basicamente debería usarse para suspender completamente a aplicación se non se require que algunha parte dela se execute en segundo plano.

3. applicationWillEnterForeground

Este estado é o contrario do primeiro estado, onde a aplicación renunciará ao estado activo. O estado simplemente significa que a aplicación en suspensión reanudarase desde un segundo plano e aparecerá en primeiro plano nos próximos milisegundos. os desenvolvedores deberían usar este método para retomar os procesos que estivesen inactivos mentres a aplicación estaba en segundo plano. As conexións aos servidores deberían restablecerse, os temporizadores restablecerse, as imaxes e os datos cargados na memoria e outros procesos necesarios poden retomarse xusto antes de que o usuario volva ver a aplicación cargada.

4. applicationDidBecomeActive

O estado indica que a aplicación acaba de activarse despois de ser restaurada en primeiro plano. Este é un método que se pode usar para facer axustes adicionais na interface de usuario ou para restaurar a IU ao seu estado orixinal, etc. Isto realmente ocorre no momento no que o usuario xa ve a aplicación na pantalla, polo que é necesario determinar con cautela o que ocorre no método deste e no anterior. Chámanse un tras outro cunha diferenza duns milisegundos.

5. aplicaciónWillTerminate

Este estado ocorre uns milisegundos antes de que a aplicación saia, é dicir, antes de que a aplicación remate. Ben manualmente desde a multitarefa ou ao apagar o dispositivo. O método debería utilizarse para gardar os datos procesados, para finalizar todas as actividades e para eliminar os datos que xa non serán necesarios.

6. applicationDidReceiveMemoryWarning

É o último estado que máis se discute. Encárgase, se é necesario, de eliminar a aplicación da memoria de iOS se utiliza recursos do sistema innecesariamente. Non sei específicamente o que fai iOS coas aplicacións en segundo plano, pero se necesita unha aplicación para liberar recursos a outros procesos, pídelle unha advertencia de memoria para que libere os recursos que teña. Polo tanto, este método chámase na aplicación. Os desenvolvedores deberían implementalo para que a aplicación abandone a memoria que lle asignou, garde todo o que está en curso, limpa os datos innecesarios da memoria e, doutro xeito, libere memoria adecuadamente. É certo que moitos desenvolvedores, incluso principiantes, non pensan nin entenden tales cousas, e entón pode ocorrer que a súa aplicación ameace a duración da batería e/ou consuma innecesariamente os recursos do sistema, mesmo en segundo plano.

Veredicto

Estes seis estados e os seus métodos asociados son o fondo de toda a "multitarea" en iOS. é un gran sistema, sempre que os desenvolvedores non ignoren o feito de que hai que ser responsable sobre o que a aplicación arroxa nos dispositivos dos seus usuarios, se se minimizan ou reciben avisos do sistema, etc.

Fonte: macworld.com

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

 
Tamén tes algún problema que resolver? Necesitas consello ou quizais atopas a aplicación correcta? Non dubides en contactar connosco a través do formulario da sección Asesoramento, a próxima vez responderemos á túa pregunta.

.