Todos conhecemos a lição “multitarefa = capacidade de realizar vários processos ao mesmo tempo”. Nós o usamos em nossos computadores sem estarmos particularmente conscientes de sua presença. A alternância entre aplicativos ou janelas de um aplicativo ocorre (para nós) em tempo real e consideramos essa capacidade do sistema operacional garantida.
Tarefa diferente
O sistema operacional aloca o processador para todos os aplicativos em pequenos intervalos de tempo. Esses períodos de tempo são tão pequenos que não podemos percebê-los, então parece que todos os aplicativos estão usando o processador ao mesmo tempo. Poderíamos pensar assim multitarefa no iOS 4 funciona exatamente da mesma forma. Não é assim. A principal razão é, obviamente, a capacidade da bateria. Se todos os aplicativos fossem realmente executados em segundo plano, provavelmente teríamos que procurar um soquete em algumas horas.
A maioria dos aplicativos compatíveis com iOS 4 são colocados em "modo suspenso" ou suspensos após pressionar o botão Home. Uma analogia pode ser fechar a tampa de um laptop, que entra imediatamente no modo de suspensão. Depois de abrir a tampa, o laptop acorda e tudo fica exatamente no mesmo estado de antes de a tampa ser fechada. Além disso, existem aplicativos em que pressionar o botão Home faz com que eles sejam encerrados. E com isso queremos dizer uma rescisão real. Os desenvolvedores podem escolher qual desses métodos usar.
Mas há outra categoria de aplicativos. Esses são os aplicativos que realmente rodam em segundo plano, mesmo que você esteja fazendo algo completamente diferente no seu iDevice. O Skype é um bom exemplo porque precisa de uma conexão constante com a Internet. Outros exemplos poderiam ser aplicativos que reproduzem música de fundo (Pandora) ou aplicativos que exigem uso constante de GPS. Sim, esses aplicativos esgotam sua bateria mesmo quando executados em segundo plano.
Dormir ou abater?
Certos aplicativos compatíveis com iOS 4, que devem ser colocados em suspensão (colocados em "modo suspenso") após pressionar o botão Home, continuam sendo executados em segundo plano. A Apple deu aos desenvolvedores exatamente dez minutos para que o aplicativo concluísse sua tarefa, fosse ela qual fosse. Digamos que você esteja baixando um arquivo no GoodReader. De repente, alguém quer ligar para você e você só precisa aceitar aquela ligação importante. A ligação não durou mais de dez minutos, você retornará ao aplicativo GoodReader. O arquivo pode já ter sido baixado ou ainda está sendo baixado. E se a chamada demorar mais de dez minutos? O aplicativo, no nosso caso GoodReader, terá que interromper sua atividade e informar ao iOS que pode ser colocado em suspensão. Caso contrário, ela será encerrada impiedosamente pelo próprio iOS.
Agora você sabe a diferença entre multitarefa “móvel” e “desktop”. Embora a fluidez e a velocidade de alternância entre aplicativos sejam importantes para um computador, a duração da bateria é sempre o mais importante para dispositivos móveis. A multitarefa também teve que ser adaptada a esse fato. Portanto, depois de ler este artigo, se você pressionar o botão Home duas vezes, não verá mais a “barra de aplicativos em execução em segundo plano”, mas essencialmente apenas a “lista de aplicativos usados recentemente”.
Autor: Daniel HruškaZdroj: onemoretap.com
hmm, interessante :) Sempre pensei que era sempre parecido com o que pode ser feito no Unix. Se o aplicativo recebeu zero tempo de CPU e o processo apenas ficou na memória, todos os recursos foram alocados. então tive que pressionar home duas vezes e interromper imediatamente o aplicativo para excluí-lo. Então, isso significa que mesmo que haja um ícone de aplicativo na folha oculta inferior, o aplicativo ainda está fechado há muito tempo (após 10 minutos)?
Na lista inferior, estão simplesmente os aplicativos abertos mais recentemente, alguns deles ainda podem ser executados, alguns estão suspensos e alguns foram completamente encerrados. Remover manualmente o aplicativo da lista tem o "efeito colateral" de que, se ele estiver em execução (ou for suspenso), será encerrado.
O aplicativo precisa se informar sobre esses 10 minutos extras e não há garantia de que os obterá.
Bem, isso não me livrou da minha obsessão em fechar o aplicativo da lista (e se ele consumir recursos acidentalmente, certo? :-D)
Meu entendimento é que os 10 minutos são para aplicativos que precisam funcionar em segundo plano e não se enquadram na categoria “skype, GPS e reprodução de música”. Outros aplicativos mudam para o modo suspenso e permanecem na memória até que a memória seja necessária para outras coisas.
O modo suspenso tem a vantagem de que se precisar encerrar o aplicativo, você não perderá seus dados, tudo será salvo no momento de passar para suspenso.
ou, no caso de, por exemplo, reprodução, o equivalente ao comando bg / fg.
E quanto ao player ou outros aplicativos executados em segundo plano por qualquer período de tempo? Quer dizer, posso “escolher” como desenvolvedor ou isso precisa ser aprovado pela Apple de alguma forma?
Para que o aplicativo realmente funcione em segundo plano por tempo ilimitado, ele deve realizar (cadastrar) uma das seguintes ações:
– Usar serviços de localização (GPS)
– Tocar música de fundo
– Use VOIP (Voz sobre IP)
De acordo com o título (uma olhada nos bastidores), esperava que o artigo contivesse uma explicação um pouco mais extensa com detalhes técnicos. Isso parece mais uma conclusão do artigo. Se for perex, quando será a sequência? Você pode obter um reembolso? :-)
e o que você gostaria de saber com mais detalhes?
De um artigo com "sob o capô" no título, eu esperaria uma descrição técnica detalhada (o autor poderia analisar, por exemplo, a sobrecarga ao alternar aplicativos ou como o acesso simultâneo aos recursos do sistema é tratado), uma comparação com outros modelos (por exemplo, com um iPhone desbloqueado). O ideal é comprovar com algumas medidas. Eu simplesmente esperava muito mais de um artigo que traz “os bastidores” no título do que essa descrição tão superficial.
Existe algum cliente icq que roda continuamente em segundo plano como o skype e não interrompe a conexão?
o aplicativo tem 10 segundos para entrar no modo de suspensão, não 10 minutos... e durante esse processo, algumas partes podem ou não "travar" nos serviços de backend, algumas das quais já foram listadas acima - é o que a Apple chama de "inteligente "multitarefa.... então o sistema a derrubou
O aplicativo pode exigir mais tempo se algo estiver sendo baixado, carregado ou processado. Não tem nada a ver com GPS, VoIP ou reprodução de música, que funciona em modo minimalista por tempo ilimitado.