1

전화가 배터리를 소모 할 때 onDestroy 메서드가 호출됩니까? 나는 그렇지 않다고 생각한다. 불행히도, 지금 당장 이걸 시험해 볼 전화가 없어요. 그렇지 않으면 스스로 확인 만 할거예요.휴대 전화가 다 소모되면 응용 프로그램에서 onDestroy가 호출됩니까?

+3

'나는 그렇지 않다고 생각한다. '전화기에 0.0 % 배터리가 남아있을 때, 실제로 0.5 % 남았습니다. 실제로 죽기 전에 모든 것을 셧다운하는 데 사용한다고 생각하지만, 그것은 단지 –

+0

입니다. 나는 그것을하는 것이 합리적이라고 생각합니다. 전화가 실제로 종료되고 모든 응용 프로그램이 파괴되면 onDestroy는 에뮬레이트 된 전원 버튼을 사용하여 –

답변

1

실제로 어떤 일이 발생할지를 알 수 없습니다. 정상적인 상황에서 onDestroy()이 호출되는지에 대해서도 의문의 여지가 있습니다. BACK 버튼 또는 Activity의 이벤트가 명시 적으로 finish()를 호출에 발생하는 경우를 사용할 때 Activity에서 onDestroy()라고해야 할 몇 가지 상황

하나입니다. 결과 및 이론적으로 Activity이 중지되고 (onStop()이 호출 된 다음) 삭제됩니다 (onDestroy()가 호출 됨).

프로세스가 실제로 '사망'경우 앱 구성 요소의 깨끗한 종료가 제공되는 모호성 WRT는 - 그들은 기본적으로 강제로 어떤 것을 방지 일반적으로 실행 상태에 관계없이 메모리가 부족 과정을 찢어으로 작업 살인자가 너무 악 이유는 정리 작업이 발생합니다.

배터리가 절대 최소 상태 일 때와 같이 시스템은 실행중인 프로세스를 가능한 한 깔끔하게 종료 할 수있는 수준으로 최선을 다하지만 정상적으로 수행 할 수 있다고 보장 할 수는 없습니다. 특히

, 당신이 필요가있는 '미션 크리티컬'데이터 나 상태를 저장해야하는 경우가 중지 될 때 ActivityonStop()에 (즉, onPause() 또는 적어도 (일시 중지되면 다음) 그것을 할.

나는 개인적으로 거의 내가 위에서 설명한 한 이유 onDestroy()의 사용을하지 않습니다 - 일반적으로 내가 창조 작업 -> 시작 -> 이력서 -> 일시 정지 -> 정지 -. 다시 시작 라이프 사이클 방법

마지막으로, 앱은 여러 가지 구성 요소 (활동, 서비스 및 명시 적 또는 암시 적 애플리케이션)를 가질 수 있음을 기억해야합니다. 낮은 박쥐의 경우 이러한 구성 요소 각각은 다르게 처리 될 수 있습니다. 그러나 프로세스가 메모리를 찢어 버리고 강제로 중지 된 경우 데이터를 저장할 계획이 아니라면 배터리를 다시 충전하고 앱을 다시 시작한 후에는 무엇을 발견할지는 아무런 보장이 없습니다. 또는 상태.

1
내가 지금 확인할 수는 없지만, 실제로 밖으로 전달하기 전에 장치가 전체 종료 루틴을 통과하기 때문에, 당신은

희망을 (전원 버튼을 에뮬레이션 F7을)를 전원을 끄기에 의해 시뮬레이터에서 테스트 할 수

도움이됩니다!

+1

이라고 불리우며 죽어가는 배터리를 시뮬 레이팅하지 않습니다. 장치를 종료하고 모든 서비스를 종료합니다. – NewOutlaw

+0

내 요점은 장치가 ~ 1 % 남았음을 알 때 장치가 제대로 종료되어 필요한 모든 것을 호출한다는 것입니다. 물론, 배터리가 뜨거워 지거나 정말로 "죽을"경우, 앱은 그 사실을 인식하지 못합니다 (폴백 없음, 그냥 멈춤) – Tr4X

+0

내 실수입니다. 맞아. ;) – NewOutlaw