답변:
에뮬레이터에서 앱을 중지하고 싶다고하셨습니다. 이를 위해 디버그 관점에서 장치 창을 열고 프로세스를 선택한 다음 동일한 창에서 중지 버튼을 누를 수 있습니다.
RemoteException sending setActive(false) notification
는 않았지만 logCat 뷰포트에서 실행되었습니다
프로그램을 중지하기 위해 관점을 전환하는 것이 지루하다고 생각하는 사람들은 (예 : 내가했던 것처럼) 현재 관점에서 장치 창을 선택하여 볼 수 있습니다.
Windows > 보기 표시 > 기타 ... > Android > 장치
Android에서 프로그램은 일반적으로 finish () 경우에만 '중지'하거나 메모리가 필요할 때 시스템이이를 삭제합니다. 왜 멈추나요? 예를 들어, 수정 / 재설치 / 다시 테스트하기 위해 중지 할 필요가 없습니다.
"디버그"퍼스펙티브에서 "디버그"(활성 스레드 목록이있는 위치)에서 애플리케이션의 루트를 선택하고 중지 단추를 클릭하십시오.
나를 위해 일하고 있습니다.
Windows-> Open Perspective-> 기타 ...-> DDMS
일반보기로 돌아가려면 오른쪽 상단에있는 Java 버튼을 누르기 만하면됩니다. Windows-> Open Perspective-> Other ...-> Java를 눌러도됩니다.
이 답변은 Eclipse를 다루지 않지만 실행중인 Android 프로그램을 중지하기위한 Google 검색에서이 질문이 나오기 때문에 명령 줄 방법을 제공하고 싶습니다. 실행 adb shell
하고 죽이려는 프로세스의 PID를 찾으십시오. ps
예를 들어 광산은 다음과 같습니다.
u0_a46 2097 37 175520 19912 ffffffff 40037ebc S net.unternet.bleah.blarg
그러면 kill 2097
메인 화면이 다시 나타나는 것을 볼 수 있습니다.
그림 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 : 좀비 비유가 마음에 들지 않는다면 판타지아는 어떻습니까?
그림 참조 : 1. DDMS를 클릭하십시오. 2. 현재 앱을 선택합니다. 3. "중지"를 클릭하십시오.