Home > Notícias

Mitos e verdades sobre o funcionamento da multitarefa no iOS

Apesar de o recurso estar disponível há um bom tempo nos aparelhos da Apple, ainda há informações erradas entre usuários de iPhone e iPad

Macworld / EUA

05/01/2012 às 14h56

Foto:

Há uma informação errada sobre o iOS em especial que ainda continua circulando por aí. Até mesmo fontes supostamente com autoridade, como os Genius das Apple Stores, não parecem entender isso direito. O problema tem a ver com a maneira como a multitarefa funciona no iOS.

É mais ou menos isso que ouvimos por aí, e está errado:

“Todos esses apps na barra de multitarefa do seu aparelho iOS estão atualmente ativos e deixando o aparelho mais lento, enchendo sua memória ou usando sua bateria. Para melhorar a performance e a duração de bateria, você precisa fechá-los todos manualmente.”

A barra de multitarefa do iOS não contém uma lista com todos os apps que estão sendo executados, mas uma lista dos aplicativos usados recentemente. O usuário nunca precisa gerenciar tarefas em segundo plano no iOS.

Exceto em alguns casos, que veremos abaixo, os apps que aparecem na barra de multitarefa não estão rodando no momento. Quando você pressiona o botão Home (Início), o iOS dirá ao app para fechar. Na maioria dos casos, ele fecha, para de usar o poder do processador (e a bateria), e a memória que estava sendo usada é eventualmente recuperada, se necessário.

As cinco faces dos aplicativos
Os apps iOS podem existir em cinco estados de execução. Eles são:

- Não está rodando: o app foi encerrado ou não foi aberto.

- Inativo: o app está em primeiro plano, mas não está recebendo eventos (por exemplo, o usuário travou o aparelho com o aplicativo ativo).

- Ativo: O estado normal “em uso” de um aplicativo.

- Background (segundo plano): O aplicativo não está mais sendo mostrado na tela, mas ainda está executando códigos.

- Suspenso: O aplicativo ainda está na memória, mas não executa códigos.

Os estados Ativo e Inativo não são relevantes para a discussão. A maior parte da confusão gira em torno do que acontece quando um app vai de Ativo para Background, para Suspenso e para Não está rodando.

Quando você aperta o botão Home, o aplicativo vai de Ativo para Background. A maioria dos apps então vai de Background para Suspenso em questão de segundos (apps suspensos continuam na memória do aparelho. Isso acontece para que eles possam ser acionados mais rapidamente quando você quiser voltar para eles. Não estão usando poder do processador nem gastando bateria).

Você pode pensar que se um app está na memória, você precisará removê-lo manualmente para conservar a memória do seu aparelho. Mas você não precisa: o iOS faz isso por você. Se você abrir um aplicativo de uso intensivo de memória, como um game, o sistema começará a pegar apps Supensos da memória e movê-los para o estado Não Está Rodando. Isso quer dizer que eles serão completamente removidos da memória e serão abertos “do zero” na próxima vez que tocar nos seus respectivos ícones.

Agora vem a parte ainda confusa: nenhum desses estados está refletido na barra de multitarefa. Essa barra sempre mostra uma lista dos apps recentemente usados, independentemente de estarem nos estados Background, Suspenso ou Não Está Rodando (você também deve ter notado que o app que está atualmente Ativo não aparece na barra de multitarefa.)

Tarefas em segundo plano
Vamos pegar um aplicativo que baixa grandes arquivos da web, como o Instacast (app de podcast). Quando ele está Ativo, pode começar o download de novos podcasts. Por padrão, se apertar o botão Home no iPhone, o Instacast teria cinco segundos para rodar no estado Background antes de ser movido para Suspenso. Isso interromperia o download dos podcasts, o que pode levar algum tempo (os arquivos são grandes).

Mas o iOS permite que apps como o Instacast, que possuem tarefas que levam tempo e que podem rodar em segundo plano, peçam por uma prorrogação. O app declara seu download de podcasts como uma “tarefa em segundo plano”. Isso permite que o Instacast tenha um tempo extra rodando como Background, após o botão Home ser apertado, para completar seus downloads.

O Instacast não tem o dia todo. Um aplicativo recebe cerca de 10 minutos de tempo rodando em Background antes de ser suspenso pelo iOS. Mas, de qualquer forma, esse não é um recurso com o qual os usuários comuns devem se preocupar.

aplicativosiphone390

Aplicativos no iOS: execução de forma diferenciada

Tempo indefinido em segundo plano
Então, todos os apps recebem cinco segundos rodando em Background, para limpar as coisas, e alguns deles (como o Instacast) podem pedir uma extensão de 10 minutos. Existe, no entanto, um pequeno grupo de apps que genuinamente precisa rodar indefinidamente em segundo plano, e o iOS permite isso.

São cinco tipos de aplicativos com permissão para rodar indefinidamente no estado Background no iOS 5:

- Apps que reproduzem áudio enquanto estão em segundo plano. Um bom exemplo é o Instacast, enquanto está tocando um podcast.

- Apps que rastreiam sua localização em segundo plano. Por exemplo, você ainda quer instruções por voz do seu app de GPS para navegação , mesmo se outro app estiver Ativo.

- Aplicativos que recebem ligações VoIP. Se você usa o Skype no iOS, pode receber ligações enquanto o app está em segundo plano.

- Aplicativos de banca (revistas e jornais) que estão baixando novo conteúdo.

- Programas que recebem atualizações contínuas a partir de um acessório externo em segundo plano.

Todos os aplicativos bem escritos nas categorias acima devem passar para o estado Suspenso quando não estiverem mais realizando a tarefa em questão. Quando o Instacast termina de tocar um podcast, ele deve ficar Suspenso. Também há alguns aplicativos nativos da Apple que rodam de forma contínua em segundo plano no iOS – o mais usado é provavelmente o Mail.

Enquanto esses apps estiverem rodando no estado Background, eles consumirão memória, CPU e energia. Também é importante saber que um app que está habilitado para rodar indefinidamente em segundo plano pode fazer qualquer coisa que faz quando está Ativo.

Isso pode incluir muito mais do que apenas reproduzir áudio ou rastrear sua localização. Por exemplo, enquanto o Instacast estiver reproduzindo áudio, ele também pode continuar a baixar novos conteúdos em segundo plano.

Mas, de forma geral, você saberia que está usando tais aplicativos. O desenvolvedor precisa declarar qual categoria de funcionamento em segundo plano ele exige, e parte do processo de revisão da App Store é verificar se essas declarações não estão sendo abusadas – apesar de o review da App Store não ser perfeito.

No início do texto foi dito que “o usuário nunca precisa gerenciar tarefas em segundo plano no iOS”. A única exceção a isso é quando um desses apps rodando no Background fica frenético ou não entra em modo Suspenso corretamente.

Nesse caso, você pode querer fechar o aplicativo manualmente a partir da barra de Multitarefa. No entanto, essa é uma situação pouco usual e anormal para um usuário iOS. Mas o iOS poderia sim fazer um trabalho melhor em mostrar quais apps estão atualmente rodando em segundo plano indefinidamente, talvez de modo parecido com a maneira que os apps usando Serviços de Localização são mostrados.

Tags

Junte-se a nós e receba nossas melhores histórias de tecnologia. Newsletter por e-mail Newsletter por e-mail