как остановить программу, запущенную под eclipse?

<p>я не могу найти опцию, чтобы остановить работающую программу (будь то в режиме отладки или выпуска).</p><p>поэтому сейчас я прекращаю программу (возвращая управление eclipse), просто закрывая эмулятор.</p><p>есть ли лучший способ сделать это? так что мне не нужно закрывать (и перезапускать) эмулятор?</p>

<p>я так понимаю, вы хотите остановить свое приложение на эмуляторе. для этого вы можете открыть окно устройств (в перспективе отладки), выбрать процесс и затем нажать кнопку остановки в том же окне.</p>

<p>те, кто считает утомительным переключение между перспективами, чтобы остановить программу (как я сделал), вы можете просматривать окна устройств в вашей текущей перспективе, выбрав</p><blockquote> <p><em>windows</em>> <em>показать представление</em>> <em>другое ...</em>> <em>android</em>> <em>устройства</em></p> </blockquote>

<p>имейте в виду, что на android программы, как правило, "останавливаются", только когда вы заканчиваете (), или система уничтожает их, когда требуется память. зачем вообще останавливаться? вам не нужно останавливаться, чтобы исправить/переустановить/повторно протестировать, например.</p>

<p>в перспективе "отладка" выберите корень приложения в разделе "отладка" (где находится список активных потоков) и нажмите кнопку "стоп".</p>

<p>работаю на меня.</p><p>windows -> открытая перспектива -> другое ... -> ddms</p><ol> <li>в представлении android в левом окне вы можете увидеть "устройства". должен быть список запущенных приложений (эмулятор или физические устройства). нажмите на приложение, которое вы хотите закрыть. обычно имя - это имя пакета + название приложения</li> <li>теперь нажмите на символ "стоп".</li> </ol><p>чтобы вернуться к обычному виду, просто нажмите кнопку java в правой верхней части. вы также можете сделать это, нажав: windows -> открыть перспективу -> другое ... -> java</p>

<p>этот ответ не касается eclipse, но поскольку этот вопрос возникает в поиске google для остановки работающей программы android, я хотел бы предложить метод командной строки. запустите <code>adb shell</code>, найдите pid процесса, который вы хотите уничтожить с помощью <code>ps</code>, например мой был:</p><p><code>u0\_a46 2097 37 175520 19912 ffffffff 40037ebc s net.unternet.bleah.blarg</code></p><p>так что просто <code>kill 2097</code> и вы увидите, что снова появляется главный экран.</p>

<p>добавьте точку останова в свой код, где вы хотите остановить, а затем запустите ее в режиме отладки, нажав f11.</p>

<p><img src="https://i.stack.imgur.com/5ps1m.jpg" alt="android zombies"> <em>рисунок 1 - многие зомби были убиты во время исследования этого ответа</em></p><p>уничтожение процесса android приложения java vm на уровне ос не рекомендуется. к сожалению, это именно то, что делает окно "stop" устройства eclipse, как и system.exit () и команда "kill" оболочки.</p><p>это подрывает обычные методы жизненного цикла приложения, такие как onstop (), ondestroy () и finalize ().</p><p>многие приложения требуют этих методов для корректного выхода (например, если они используют системные объекты, такие как sensor, mediaplayer, equalizer, visualizer и т.д.).</p><p>эти системные объекты держатся в руках зомби на системных ресурсах, если release () не вызывается явно во время этих методов жизненного цикла. смотрите рис. 1 выше. это может помешать перезапуску приложения и даже потребовать перезагрузки. это неблагодарный аспект.</p><p>единственное решение - убедиться, что вы всегда корректно выходите из приложения, вызывая onstop (), ondestroy () или, по крайней мере, finalize (). это делает отладчик, как и ос при завершении работы.</p><p>вы можете настроить свое приложение так, чтобы оно перехватывало события sig\_hup для принудительного выхода из командной строки.</p><p>единственный раз, когда вы убьете приложение vm, находится в состоянии anr (уже зомби). anr должны быть фиксированными. никогда не развертывайте приложение, которое может войти в это состояние. это очень грубо.</p><p>вы можете использовать аналитику google и play store, чтобы отслеживать их в процессе развертывания. вы не хотите, чтобы сердитые пользователи давали отзывы об одной звезде anr после перезагрузки из-за вашего приложения-зомби. очень плохой.</p><p>помните, что android - это linux: относитесь к нему как к настоящей ос и соблюдайте жизненный цикл приложения, в противном случае вы непременно столкнетесь со страшным зомби-апокалипсисом.</p><p>ps: если вам не нравится аналогия с зомби, как насчет fantasia?</p><p><img src="https://i.stack.imgur.com/rzgbb.gif" alt="enter image description here"></p>

<p>смотрите картинку: 1. нажмите на ddms; 2. выберите текущее приложение; 3. нажмите "стоп" <img src="https://i.stack.imgur.com/tjpiu.png" alt="enter image description here"></p>