Eclipse에서 실행되는 프로그램을 중지하는 방법은 무엇입니까?


107

실행중인 프로그램을 중지하는 옵션을 찾을 수 없습니다 (디버그 또는 릴리스 모드에 관계없이).

따라서 지금은 에뮬레이터를 닫는 것만으로 프로그램을 중지합니다 (Eclipse로 제어권 반환).

이 작업을 수행하는 더 좋은 방법이 있습니까? 에뮬레이터를 닫고 다시 시작할 필요가 없습니다.

답변:


112

에뮬레이터에서 앱을 중지하고 싶다고하셨습니다. 이를 위해 디버그 관점에서 장치 창을 열고 프로세스를 선택한 다음 동일한 창에서 중지 버튼을 누를 수 있습니다.


1
정말 고마워. 당신은 내 생명을 구했습니다. 7 분 후에 답변
Android Eve

1
방금 발견 한 다른 방법 추가 : 에뮬레이터에서 설정> 애플리케이션> 애플리케이션 관리> (앱 선택)> 강제 종료를 선택합니다.
Android Eve

당신. 그것은 또 다른 방법이지만, 백그라운드에 있지 않는 한 거기에 도달하는 데 시간이 걸립니다. :)
Varun

11
Visual Studio에서와 같은 중지 버튼이 너무 좋을 것입니다. 으.
Ian Davis

프로젝트 생성 직후 앱을 시작했고 중지 버튼을 클릭했을 때 프로세스가 종료되지 RemoteException sending setActive(false) notification않았지만 logCat 뷰포트에서 실행되었습니다
Stphane

77

프로그램을 중지하기 위해 관점을 전환하는 것이 지루하다고 생각하는 사람들은 (예 : 내가했던 것처럼) 현재 관점에서 장치 창을 선택하여 볼 수 있습니다.

Windows > 보기 표시 > 기타 ... > Android > 장치


3
고마워요, 바로 제가 찾던 것입니다! +1
Sabobin 2013 년

+1. 좋아요! 그리고 다시 실행하려면 장치에서 다시 시작하면 완벽하게 작동합니다.
Francisco Corrales Morales 2014

한 단계 더, 목록에서 packageID를 찾으십시오. 처음에는 미루었지만 "오 멋지다! 다 볼 수있어." 멋진 안드로이드는 후드 아래에 무슨 볼 : (주 내가 Genymotion 시뮬레이터를 사용하고, 어쩌면 에뮬레이터 당신은, 난 그냥 실행을 기다리고 참을 수 없어 말할 것입니다)
스티븐 J

이는 Android 앱 수명주기를 위반하고 비정상적으로 종료되어 앱을 다시 시작할 수없고 기기를 강제로 재부팅하여 문제를 해결할 수 있습니다.
Dominic Cerisano 2015 년

13

Android에서 프로그램은 일반적으로 finish () 경우에만 '중지'하거나 메모리가 필요할 때 시스템이이를 삭제합니다. 왜 멈추나요? 예를 들어, 수정 / 재설치 / 다시 테스트하기 위해 중지 할 필요가 없습니다.


이것은 훌륭한 통찰력입니다. 감사합니다. +1
Android Eve

1
@ 이브 .. 내 기쁨. 자세한 내용은 stackoverflow.com/questions/2033914/…를
DJC

4
글쎄, 아마도. 그러나 이것은 실제로 질문에 대한 답이 아닙니다. 제 경우에는 AudioTrack 클래스를 가지고 놀면서 사운드 스트림을 생성하고 있습니다. 항상 그 사인파를 듣는 것은 정말 짜증납니다. DDMS로 가서 오른쪽 스레드를 찾아 선택하고 STOP 아이콘을 찾아야합니다. 매우 절름발이.
Vagrant 2011 년

2
중지하지 않고 프로그램 상태를 어떻게 재설정 할 수 있습니까?
Erik Engheim

에뮬레이터를 사용하면 몇 분 정도 후에 프로그램이 다시 실행되지 않습니다 (아마도 아직 실행 중이기 때문일 수 있음). 작은 편집이 필요할 때 일찍 완료 한 다음 에뮬레이터에서 빠르게 확인하는 것이 편리합니다. 그리고 종종 몇 가지 작은 편집을 수행하므로 실행중인 앱을 중지하고 다시로드하여 신속하게 확인하면 많은 시간을 절약 할 수 있습니다.
Azurespot

12

"디버그"퍼스펙티브에서 "디버그"(활성 스레드 목록이있는 위치)에서 애플리케이션의 루트를 선택하고 중지 단추를 클릭하십시오.


감사합니다. @varun을 읽은 후에 만 ​​지침을 이해했습니다. +1
Android Eve

@Android Eve, 아, 도움이되어 기쁩니다. 명확하지 않아서 죄송합니다!
Chris Thompson

괜찮아. 나는 많은 다른 플랫폼에서 수년간의 개발에도 불구하고 (아마도 그 때문에) Android 개발과 관련하여 완전히 방향 감각이 없습니다.
Android Eve

예, 이것이 가장 쉬운 해결책입니다. (사실 prob이 허용되는 대답이어야합니다). 중지 버튼은 최상위 [Android 애플리케이션] 항목 대신 스레드가 강조 표시 될 때만 비활성화됩니다.
Colin

7

나를 위해 일하고 있습니다.

Windows-> Open Perspective-> 기타 ...-> DDMS

  1. Android보기의 왼쪽 창에서 "장치"를 볼 수 있습니다. 현재 실행중인 응용 프로그램 목록이 있어야합니다 (에뮬레이터 또는 물리적 장치). 닫으려는 응용 프로그램을 클릭하십시오. 일반적으로 이름은 패키지 이름 + 애플리케이션 이름입니다.
  2. 이제 "중지"기호를 클릭하십시오.

일반보기로 돌아가려면 오른쪽 상단에있는 Java 버튼을 누르기 만하면됩니다. Windows-> Open Perspective-> Other ...-> Java를 눌러도됩니다.


2

이 답변은 Eclipse를 다루지 않지만 실행중인 Android 프로그램을 중지하기위한 Google 검색에서이 질문이 나오기 때문에 명령 줄 방법을 제공하고 싶습니다. 실행 adb shell하고 죽이려는 프로세스의 PID를 찾으십시오. ps예를 들어 광산은 다음과 같습니다.

u0_a46 2097 37 175520 19912 ffffffff 40037ebc S net.unternet.bleah.blarg

그러면 kill 2097메인 화면이 다시 나타나는 것을 볼 수 있습니다.


앱 수명주기 위반. 시스템 리소스가 해제되지 않는 문제를 일으키고 장치 재부팅을 강제로 지울 수 있습니다.
Dominic Cerisano 2015 년

0

중지하려는 코드에 중단 점을 추가 한 다음 F11을 눌러 디버그 모드에서 실행합니다.


0

안드로이드 좀비 그림 1-이 답변을 조사하는 동안 많은 좀비가 사망했습니다.

OS 수준에서 Android 애플리케이션 Java VM 프로세스를 종료하는 것은 권장되지 않습니다. 불행히도 이것은 System.exit () 및 쉘 "kill"명령과 마찬가지로 Eclipse 장치 창 "중지"가 수행하는 작업입니다.

이는 onStop (), onDestroy () 및 finalize ()와 같은 일반적인 앱 수명주기 메서드를 파괴합니다.

많은 앱에서 정상적인 종료를 위해 이러한 메서드가 필요합니다 (예 : Sensor, MediaPlayer, Equalizer, Visualizer 등과 같은 시스템 개체를 사용하는 경우).

이러한 시스템 개체는 이러한 수명주기 메서드 동안 release ()가 명시 적으로 호출되지 않으면 시스템 리소스에 대한 좀비 죽음의 그립과 함께 멈 춥니 다. 그림 참조. 위 1 개. 이렇게하면 앱이 다시 시작되지 않고 재부팅이 필요할 수도 있습니다. 그것은 비정상적인 측면입니다.

유일한 해결책은 onStop () 또는 onDestroy () 또는 적어도 finalize ()를 호출하여 항상 앱을 깨끗하게 종료하는 것입니다. 디버거는 종료시 OS와 마찬가지로이를 수행합니다.

명령 줄에서 정상 종료를 강제하기 위해 SIG_HUP 이벤트를 트랩하도록 앱을 설정할 수 있습니다.

앱 VM을 종료하는 유일한 시간은 ANR (이미 좀비) 상태입니다. ANR을 수정해야합니다. 이 상태에 들어갈 수있는 앱을 배포하지 마십시오. 매우 무례합니다.

Google 분석 및 Play 스토어를 사용하여 배포시이를 모니터링 할 수 있습니다. 좀비 응용 프로그램으로 인해 재부팅해야 한 후 화난 사용자가 단일 별 ANR 리뷰를 제공하는 것을 원하지 않습니다. 아주 나쁜.

Android는 Linux라는 것을 기억하십시오. 실제 OS처럼 취급하고 앱 수명주기를 존중하십시오. 그렇지 않으면 두려운 Zombie Apocalypse에 직면하게 될 것입니다.

PS : 좀비 비유가 마음에 들지 않는다면 판타지아는 어떻습니까?

여기에 이미지 설명 입력


0

그림 참조 : 1. DDMS를 클릭하십시오. 2. 현재 앱을 선택합니다. 3. "중지"를 클릭하십시오. 여기에 이미지 설명 입력


이 작업을 수행하고 앱이 디버깅을 중지합니다. 그러나 경우가 있습니다 : 1- USB에서 장치를 분리하고 앱을 실행 한 다음 앱이 오류에 직면하면 닫히고 매번 실행할 때마다 디버깅 양식을 불러오고 USB 케이블이 연결되거나 뒤로 버튼을 누를 때까지 기다립니다. 2- 장치를 USB에 연결하고 앱을 실행 (Ctrl + f11)하면 디버그 모드에서 자동으로 앱이 실행됩니다. 이를 해결하기 위해 새 프로젝트를 만들고 새 프로젝트에 파일을 하나씩 복사 / 붙여 넣었지만 같은 일이 다시 발생합니다. 이제 도움이 필요하십니까?
Ahmad Ebrahimi
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.