Não consigo encontrar uma opção para interromper um programa em execução (seja no modo de depuração ou versão).
Portanto, por enquanto, eu paro o programa (retornando o controle ao Eclipse) simplesmente fechando o emulador.
Existe um jeito melhor de fazer isso? De modo que não preciso fechar (e reiniciar) o emulador?
android
eclipse
android-emulator
Véspera de Android
fonte
fonte
RemoteException sending setActive(false) notification
na janela de exibiçãoAqueles que consideram tedioso alternar entre as perspectivas para interromper o programa (como eu), você pode ver as janelas dos dispositivos em sua perspectiva atual selecionando
fonte
Lembre-se de que, no Android, os programas geralmente só 'param' se você terminar () ou o sistema os destrói quando a memória é necessária. Por que parar? Você não precisa parar para consertar / reinstalar / testar novamente, por exemplo.
fonte
Na perspectiva "Debug", selecione a raiz do aplicativo em "Debug" (onde está a lista de threads ativos) e clique no botão parar.
fonte
Trabalhando para mim.
Windows -> Abrir perspectiva -> Outro ... -> DDMS
Para voltar à visualização normal, basta pressionar o botão Java no canto superior direito. Você também pode fazer isso pressionando: Windows -> Abrir perspectiva -> Outro ... -> Java
fonte
essa resposta não se refere ao Eclipse, mas como essa pergunta surge em uma pesquisa do Google para interromper um programa Android em execução, gostaria de oferecer um método de linha de comando. execute
adb shell
, encontre o PID do processo com o qual deseja matarps
, por exemplo o meu foi:u0_a46 2097 37 175520 19912 ffffffff 40037ebc S net.unternet.bleah.blarg
então
kill 2097
você deve ver a tela principal aparecer novamente.fonte
Adicione o ponto de interrupção ao seu código onde deseja parar e execute-o no modo de depuração pressionando F11.
fonte
Figura 1 - Muitos zumbis foram mortos durante a pesquisa desta resposta
Não é recomendado matar um processo Java VM de aplicativo Android no nível do sistema operacional. Infelizmente, isso é exatamente o que a janela do dispositivo eclipse "stop" faz, assim como System.exit () e o comando shell "kill".
Isso subverte os métodos normais de ciclo de vida do aplicativo, como onStop (), onDestroy () e finalize ().
Muitos aplicativos exigem esses métodos para uma saída normal (por exemplo, se eles usam objetos do sistema como Sensor, MediaPlayer, Equalizer, Visualizer, etc).
Esses objetos do sistema ficam por aí com alças mortais de zumbis nos recursos do sistema se release () não for chamado explicitamente durante esses métodos de ciclo de vida. Veja a fig. 1 acima. Isso pode impedir que um aplicativo seja reiniciado e até mesmo exigir uma reinicialização. Esse é o aspecto desagradável.
A única solução é garantir que você sempre saia do aplicativo de forma limpa com uma chamada para onStop () ou onDestroy () ou pelo menos finalize (). O depurador faz isso, assim como o sistema operacional ao desligar.
Você pode configurar seu aplicativo para interceptar eventos SIG_HUP para forçar uma saída normal da linha de comando.
A única vez que você mataria a VM do aplicativo é no estado ANR (já um zumbi). ANRs devem ser corrigidos. Nunca implante um aplicativo que pode entrar neste estado. É extremamente rude.
Você pode usar o Google Analytics e a Play Store para monitorar a implantação. Você não quer que usuários irritados dêem avaliações de ANR com estrela única após ter que reiniciar devido ao seu aplicativo zumbi. Muito mal.
Lembre-se de que Android é Linux: trate-o como um sistema operacional real e respeite o ciclo de vida do aplicativo, caso contrário, você certamente enfrentará o temido Apocalipse Zumbi.
PS: Se você não gosta da analogia do zumbi, que tal Fantasia?
fonte
Veja a figura: 1. Clique em DDMS; 2. Selecione o aplicativo atual; 3. Clique em "Parar"
fonte