Qual é o caminho certo para fechar aplicativos no Android?


69

Eu sou novo na plataforma Android, e essa provavelmente é uma pergunta idiota, mas ...

Como você fecha um aplicativo?

Quando estou em um aplicativo e quero sair, basta clicar em "Início" e seguir em frente, mas acabei de instalar um aplicativo do Gerenciador de Tarefas e notei que tudo fica em execução.

Existe uma maneira de sair de aplicativos? Ou preciso usar o Gerenciador de tarefas sempre que sair de algo?


Respostas:


48

Se você sair do aplicativo usando o BACKbotão, ele chamará onDestroy()a Atividade atual. Se você pressionar HOMEapenas ele, onPause()
não se preocupe, as Atividades não esgotarão a bateria, elas serão deixadas na memória para que possam ser abertas. mais rápido no futuro.

Eu não recomendaria o uso de um desses aplicativos matadores de tarefas O Android foi projetado para manter essas coisas na memória por um motivo, o uso de um matador de tarefas é apenas mais um serviço extra puxando sua bateria. O que você precisa observar é aplicativos que executam serviços em segundo plano, como clientes do Twitter ou de e-mail, puxando seus servidores; qualquer aplicativo bom que tenha um serviço como esse terá a opção de desativá-lo.


11
Tenho notado um par de aplicativos que não comer por um monte de bateria neste estado pausado. Ou seja, a versão mais recente do Google Maps e um jogo chamado GalaxIR. Portanto, fique atento aos maus infratores e feche-os adequadamente.
keithjgrant

11
você está enganado, se está comendo sua massa que é um serviço em segundo plano.
Nathan Schwermann

5
Na verdade, é possível ter um aplicativo que não esteja bem desenvolvido e não siga o ciclo de vida do aplicativo Android. Por exemplo, um segmento pode ser mantido ativo em uma atividade mesmo depois de ter sido pausado pelo sistema operacional (pressionando Início); nesse caso, o aplicativo continuará usando a bateria.
precisa saber é o seguinte

11
Descobri que muitos aplicativos não saem quando clico no botão Voltar. Por exemplo: Pandora, G
Clay Nichols

11
(meu tempo de edição expirou) .... outros aplicativos que não fecham no botão Voltar: Pandora (que continua a ser reproduzido após pressionar Voltar), Google Play Store, FaceBook, Podkicker. O modo como estou testando é clicar no botão Voltar até que o aplicativo desapareça (geralmente isso me leva de volta à Página inicial) e depois executando o Easy Task Killer.
argila Nichols

25

Tenho certeza de que tudo que eu já li diz que o Backbotão é o caminho certo para sair dos aplicativos.

Pressionar os Homedeixa em execução em segundo plano até que o Android decida que eles não são mais necessários, o que pode ser útil se você precisar alternar entre aplicativos para verificar alguma coisa (pressionar Home por alguns segundos fornece a lista de aplicativos em execução recentes você pode voltar para a maioria dos telefones), mas sair usando o botão Voltar indica ao aplicativo que você deseja que ele seja fechado.


3
Segurando o Homebotão, basta listar os últimos 6 aplicativos abertos, não o em execução.

@ Loïc: mostra 8 para mim.
ale

11
@LoicWolff, AlEverett Depende do iniciador em questão usado e da própria ROM.
T0mm13b 17/07/12

Isso não é bem verdade. As atividades não são executadas em segundo plano no Android.
precisa

12

Alguns aplicativos têm a opção "Sair" em seus menus. A maioria não.

Você realmente não precisa se preocupar com isso. Você pode simplesmente acessar o aplicativo que precisar em seguida. O Android faz um bom trabalho liberando recursos quando necessário.

Atualização : o AndroidSpin fez uma pesquisa no mundo real .


Bom link, ty :)
Fluxo

7

As atividades não são executadas em segundo plano

No Android, as atividades (ou seja, a parte do aplicativo que você pode ver) nunca são executadas em segundo plano. Eles só podem executar (e usar energia da bateria) enquanto estiverem na tela. A atividade para de ser executada, independentemente de você usar a casa ou voltar para deixá-la. A única diferença é que dados o Android pede ao aplicativo para salvar, então nenhuma opção é "o caminho certo". Depende apenas do que você quer fazer.

Casa

Se você usa casa , o Android deixa o aplicativo no mesmo estado, de modo que, se você voltar mais tarde (por exemplo, através da lista de aplicativos recentes), ele continuará no mesmo estado em que você o deixou: na mesma tela, com o mesmo material mostrado. Por exemplo, se é um aplicativo de e-mail e você estava vendo um e-mail, ele lembrará qual e-mail e mostrará o mesmo.

Eventualmente (após cerca de meia hora), o Android conclui que você não voltará ao aplicativo, e redefinirá esse estado: da próxima vez que você iniciar o aplicativo, ele começará na tela frontal / principal. Para continuar o exemplo, o aplicativo de email esquecerá o email e a pasta que você estava visualizando e mostrará a caixa de entrada.

De volta

Se você usa de volta , está dizendo ao Android que não deseja voltar a essa exibição. Isso destruirá as informações sobre o que você estava vendo imediatamente. Da próxima vez que você iniciar o aplicativo, ele exibirá a tela frontal (por exemplo, a caixa de entrada).

Como já foi dito, os aplicativos podem controlar o comportamento do botão Voltar : por exemplo, os navegadores da Web o usam para voltar ao histórico do navegador. O que eu descrevi é o comportamento padrão do botão Voltar, e os desenvolvedores são aconselhados a manter esse comportamento para evitar confusão.

Processos em segundo plano em cache

Qualquer que seja o método usado, o Android deixará o aplicativo na memória (mas não em execução) pelo tempo que for possível. Isso deve ser mais eficiente. Quando você volta ao aplicativo, se ele ainda estiver na memória, o Android pode executá-lo novamente imediatamente; se ainda não estiver na memória, o Android precisará gastar tempo e energia carregando o aplicativo do armazenamento novamente.

Nas versões antigas do Android, os aplicativos deixados na memória em segundo plano dessa maneira eram incluídos na lista de "aplicativos em execução". Isso é um pouco confuso para os usuários - faz as pessoas pensarem que o aplicativo ainda está em execução - então as versões mais recentes chamam esses aplicativos de "processos em segundo plano em cache", para deixar claro que eles estão apenas em cache, não em execução.

E os aplicativos em segundo plano?

Anteriormente, eu disse que as atividades não acontecem em segundo plano. Então, como o seu cliente de email verifica a correspondência? Além de atividades, os aplicativos podem ter serviços . Os serviços não têm nenhuma GUI para você ver ou interagir, mas são executados em segundo plano. Geralmente, um serviço é executado apenas com pouca frequência, como verificar e-mails uma vez por hora, mas é possível que o desenvolvedor do aplicativo execute o serviço o tempo todo, esgotando a bateria.

Sair de uma atividade com volta ou em casa não muda a maneira como o Android trata os serviços do mesmo aplicativo: o serviço pode continuar em execução ou ser acionado mais tarde em um determinado momento (na próxima vez em que a verificação de e-mail for concluída).

Sumário

Em resumo, isso realmente não importa se você usar volta ou casa : só muda o que o aplicativo mostra próxima vez que você executá-lo. Não afeta o uso da bateria. Nenhum deles corresponde a "sair" de um programa no seu PC.


Estou tão feliz que alguém tenha coberto isso! Sou desenvolvedor, mas trabalhava para a Verizon Wireless e não posso dizer quantas pessoas se preocuparam com isso quando não havia necessidade.
Roan

3

No Android, os aplicativos nunca precisam ser fechados e o sistema operacional cuida da limpeza da memória dos aplicativos restantes quando os recursos são necessários em outros lugares. O uso de um killer de tarefas apenas interrompe a operação normal do sistema operacional e pode até diminuir a velocidade do dispositivo, pois os aplicativos sempre precisam ser recarregados desde o início.

O ciclo de vida do aplicativo Android está funcionando de maneira que os aplicativos que não estão no topo são movidos em um estado pausado que não usa mais nenhuma CPU; somente o conteúdo da memória é mantido caso o aplicativo seja aberto novamente; e a memória será liberada, se necessário.

Dito isto, o desenvolvedor do aplicativo tem a responsabilidade de acompanhar o ciclo de vida do aplicativo ao criar seu aplicativo, para que possam ocorrer alguns erros ou erros que resultem em um aplicativo que realmente nunca para ou pausa. Se você encontrar esse aplicativo e o que fechá-lo, poderá fazê-lo através de "Configurações" -> "aplicativos" -> "Gerenciar aplicativos", selecionando "Forçar parada" no aplicativo.

Mas eu realmente não recomendaria o uso de um assassino de tarefas que esteja constantemente em execução no dispositivo.


1

Só quero acrescentar na resposta da schwiz que são necessárias apenas algumas linhas de código para substituir a funcionalidade do botão Voltar. Portanto, nem sempre é confiável fechar o aplicativo. Portanto, se o desenvolvedor do aplicativo não quiser fechar o aplicativo pressionando o botão Voltar, ele não será fechado.

Embora a maioria dos bons desenvolvedores de aplicativos exiba uma caixa de diálogo de alerta ao pressionar o botão Voltar no menu inicial do aplicativo, perguntando se o usuário pretende sair do aplicativo ou não, se você clicar em sair, ele fecha o aplicativo.

A resposta correta pode ser essa: o encerramento do aplicativo é totalmente do desenvolvedor do aplicativo; se ele quiser que o aplicativo seja fechado ao pressionar o botão de início, ele inserirá o código de saída onPause(). Se eles quiserem no botão voltar, eles o colocarão no onBackKeyPressed. Portanto, não está realmente na mão do usuário.

O usuário pode simplesmente evitar o uso de aplicativos que não fornecem a funcionalidade de fechamento adequada, quando não são necessários. Os gerenciadores de tarefas não são uma boa maneira de fechar o aplicativo, pois ele pode travar o aplicativo e não lhes dá a chance de salvar seu estado.

O sistema operacional fecha o aplicativo sempre que necessário, portanto você não deve se preocupar muito com isso.

Editar:
existe uma opção para destruir os aplicativos, assim que você sai do aplicativo, ou seja, quando você clica na tecla Home. Você pode ir para Settings-> Developer Options-> Don't keep Activities. Embora seja uma opção de desenvolvedor, mas se você estiver preocupado demais com os aplicativos em execução em segundo plano, poderá usar essa opção. Mas lembre-se de que não é recomendado o uso por não desenvolvedores.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.