2012-08-28 2 views

답변

2

를 참조하십시오. Android가 리소스를 회수하기 위해 애플리케이션을 종료하려고 할 때 은 프로세스를 중지합니다. 그게 전부 야. 경고도없고, 콜백도없고, 아무 것도 할 수 없습니다.

0

onDestroy() 방법을 구현하십시오.

은 정답은 "NO"입니다 Activity lifecycle

+1

나는 OP가 활동 종료가 아닌 프로세스 종료를 파악하려고한다고 믿습니다. 뒤로를 누르면 활동이 닫히지 만 메모리가 부족하지 않은 경우 앱이 실행됩니다. –

+0

프로세스가 Android에 의해 종료 된 경우 onDestroy()는 프로세스의 모든 작업에서 ** 호출되지 않습니다 **. 그들은 그냥 가버립니다. 경고없이. 똥! 지나간. –

1

네이티브 (NDK/JNI) 라이브러리에서 SIGKILL을 잡아보십시오. 그러나 신호 처리 코드에서는 거의 아무 것도 할 수 없습니다. 확실히 자바 세계로 다시 전화하지 마라. 시그널 핸들러는 * nix 규칙에 의해 크게 제한됩니다.

처음부터 성취하려는 것은 무엇입니까? 모든 현명한 정리는 일반적으로 활동 종료 코드 (onDestroy())로 수행됩니다. 프로세스 수명은 예측할 수없는 것으로 명시되어 있으므로 대부분의 사용 시나리오에서는 문제가되지 않습니다.

+0

다음에 활동이 시작될 때 오브젝트 상태를 복구하려고 시도합니다. 현재, 파일에 serialization을 통해 onSaveInstanceState에 저장합니다. 내가 싫어하는 점은, 뒤로 버튼을 눌렀을 때를 제외하고, 내 활동이 스택 맨 위에서 나가는 때마다 객체가 직렬화된다는 사실입니다. 그래서 나는 많은 불필요한 일을한다. 내가 프로세스가 죽으면 개체를 저장하고 싶습니다. –

+0

Android에서 제안하는 것처럼 파일에 저장하거나 번들에 저장하지 마십시오. 번들을 지속 시키거나 (또는 ​​메모리에 유지하는) 규칙은 시스템에 달려 있습니다. 시스템을 추측하는 것은 일반적으로 위험한 비즈니스입니다. –

관련 문제