Я не могу найти возможность остановить запущенную программу (в режиме отладки или выпуска).
Так что пока я останавливаю программу (возвращаю управление Eclipse), просто закрывая эмулятор.
Есть ли лучший способ сделать это? Так что мне не нужно закрывать (и перезапускать) эмулятор?
android
eclipse
android-emulator
Android Eve
источник
источник
RemoteException sending setActive(false) notification
в окне просмотраТе, кому утомительно переключаться между перспективами для остановки программы (как я), вы можете просмотреть окна устройств в своей текущей перспективе, выбрав
источник
Имейте в виду, что на Android программы обычно «останавливаются» только после завершения () или система уничтожает их, когда требуется память. Зачем вообще останавливаться? Вам не нужно останавливаться, например, для исправления / переустановки / повторного тестирования.
источник
В перспективе «Отладка» выберите корень приложения в разделе «Отладка» (где находится список активных потоков) и нажмите кнопку остановки.
источник
Работает на меня.
Windows -> Открыть перспективу -> Другое ... -> DDMS
Чтобы вернуться к нормальному виду, вам просто нужно нажать кнопку Java в правом верхнем углу. Вы также можете сделать это, нажав: Windows -> Открыть перспективу -> Другое ... -> Java
источник
этот ответ не касается Eclipse, но поскольку этот вопрос возникает в поиске Google для остановки работающей программы Android, я хотел бы предложить метод командной строки. run
adb shell
, найдите PID процесса, который вы хотите убитьps
, например, мой был:u0_a46 2097 37 175520 19912 ffffffff 40037ebc S net.unternet.bleah.blarg
так что тогда просто,
kill 2097
и вы должны снова увидеть главный экран.источник
Добавьте точку останова в свой код, где вы хотите остановиться, а затем запустите ее в режиме отладки, нажав F11.
источник
Рисунок 1 - Многие зомби были убиты во время исследования этого ответа
Не рекомендуется завершать процесс виртуальной машины Java приложения Android на уровне ОС. К сожалению, это именно то, что делает «стоп» окна устройства eclipse, как и System.exit () и команда оболочки «kill».
Это подрывает обычные методы жизненного цикла приложения, такие как onStop (), onDestroy () и finalize ().
Многие приложения требуют этих методов для плавного выхода (например, если они используют системные объекты, такие как Sensor, MediaPlayer, Equalizer, Visualizer и т. Д.).
Эти системные объекты держатся с мертвой хваткой зомби на системных ресурсах, если release () не вызывается явно во время этих методов жизненного цикла. См. Рис. 1 выше. Это может предотвратить перезапуск приложения и даже потребовать перезагрузки. Это неприятный аспект.
Единственное решение - убедиться, что вы всегда аккуратно выходите из приложения с помощью вызова onStop () или onDestroy () или, по крайней мере, finalize (). Отладчик делает это, как и ОС при выключении.
Вы можете настроить приложение на перехват событий SIG_HUP, чтобы принудительно выполнить плавный выход из командной строки.
Единственный раз, когда вы убиваете виртуальную машину приложения, находится в состоянии ANR (уже в состоянии зомби). Ошибки ANR должны быть исправлены. Никогда не развертывайте приложение, которое может войти в это состояние. Это очень грубо.
Вы можете использовать Google Analytics и Play Store, чтобы отслеживать их при развертывании. Вы же не хотите, чтобы рассерженные пользователи оставляли однозвездочные обзоры ANR после перезагрузки из-за вашего зомби-приложения. Очень плохо.
Помните, что Android - это Linux: относитесь к нему как к настоящей ОС и уважайте жизненный цикл приложения, иначе вы обязательно столкнетесь с ужасным зомби-апокалипсисом.
PS: Если вам не нравится аналогия с зомби, как насчет Fantasia?
источник
См. Рисунок: 1. Щелкните DDMS; 2. Выберите текущее приложение; 3. Нажмите «Стоп».
источник