2013-08-31 2 views
1

내 안드로이드 응용 프로그램이 작업 관리자에 의해 종료되는 순간을 어떻게 알 수 있습니까? Activity 클래스에 콜백이 있거나 다른 것이 있으면?작업 관리자 콜백으로 모니터 죽임

+0

안드로이드에 해킹이없는 방법은 없습니다. 너 뭐하려고? 잘 쓰여진 모바일 앱은 언제든지 죽을 수 있으며 여전히 올바르게 작동합니다. – Simon

답변

0

예, 있습니다.

enter image description here

onDestroy() 호출을하셔야합니다 (그러나 호출이 보장 아니에요).

+1

'onDestroy()'는 호출 될 수 없다는 것에주의하십시오. – Simon

+0

흠, 니가 맞아. 사이먼. 추가 해줘서 고마워. – Ahmad

+0

테스트 응용 프로그램을 작성했으며 onDestroy()가 호출하지 않는다는 것을 알아 냈습니다. –

0

전체 시스템의 메모리가 부족한 경우 Android에서 Task Killer가 사용됩니다. 그런 다음 앱을 종료하여 시스템 메모리를 확보하기 시작합니다.

그래서 Activity에서 Activity가 onLowMemory()를 구현하면 힌트를 얻을 수 있습니다. Android 설명서에 따라

전체 시스템의 메모리가 부족할 때 호출되며 적극적으로 실행중인 프로세스가 벨트를 조여 주려고 할 때 호출됩니다. 이것이 호출 될 정확한 시점은 정의되어 있지 않지만, 일반적으로 모든 백그라운드 프로세스가 종료 될 때, 즉 우리가 살인을 피하고자하는 서비스 및 전경 UI를 호스팅하는 프로세스를 죽이는 시점에 도달하기 전에 발생합니다.

+0

아마도 OOM 킬러를 의미 한 것 같습니다. 하지만 사용자가 작업 관리자에서 응용 프로그램을 닫을 때 신호가 필요합니다. –

+0

예, 나는 OOM Killer를 추측하고있었습니다. Android 태스크는 여러 애플리케이션의 액티비티로 구성 될 수 있으므로 액티비티가 사용자가 트리거 한 앱 종료를 등록하기 위해 다시 콜백했는지 여부는 확실하지 않습니다. onPause(), onStop()과 같은 활동 라이프 사이클 이벤트는 사용자가 트리거 한 앱 종료시 호출 될 코드를 구현할 수있는 장소가 될 수 있습니다 –