저는 앱 컨텍스트에 바인딩 된 서비스를 가지고 있습니다.이 서비스는 별도의 프로세스로 실행됩니다 (#service_process라고 말하면됩니다). 잡히지 않는 예외를 던져서 앱 크래시를 시뮬레이트하고 앱의 기본 프로세스 (#main_proccess)가 중지되어 주요 앱 컨텍스트를 포함하여 구성 요소를 죽이고 GCing하는 것입니다. 서비스도 언 바운드 (연결 끊김) 및 파괴되었습니다 (서비스 # onDestroy()가 호출되었습니다).서비스가 파괴 된 후 원격 프로세스 호스팅 서비스는 어떻게됩니까?
그러나 #main 프로세스가 종료 된 후에도 #service_process는 $ adb shell ps | grep com.my_app
에 따라 계속 유지됩니다.
누구나 그러한 행동에 대한 이유를 설명 할 수 있습니까? # service_process가 'dangling'하는 것을 피할 수 있습니까?
내가 설명한대로 서비스에 바인딩하고 시작하지 않으므로 '3'이 없습니다. 서비스 프로세스 '. 나는'5.에 의해 언급되는 것을 가지고 있을지도 모른다. 빈 프로세스 ' – kiruwka
당신이 바인딩하거나 startService()를 호출하면 문제가되지 않기 때문에 그렇게 생각하지 않습니다 (두 가지 방법 모두 프로세스가 시작되지만 바인드 된 경우 바인딩이 설정됩니다). 실제로 onDestroy를 호출하는 것만으로 중요하지만 프로세스 수명이 아니라 내 이해에 따라 중요하며 바인딩/프로세스 수명 관계에 대한 정보를 찾을 수 없습니다. – sandrstar