onPause()에서 isFinishing()을 사용하여 activity가 finish()에 의해 종료되는지 여부를 알 수 있습니다.OS에 의해 활동이 중단된다는 것을 어떻게 알 수 있습니까?
그런 다음 메모리 부족으로 인해 OS에서 일시적으로 활동이 중단된다는 것을 어떻게 알 수 있습니까?
감사합니다.
onPause()에서 isFinishing()을 사용하여 activity가 finish()에 의해 종료되는지 여부를 알 수 있습니다.OS에 의해 활동이 중단된다는 것을 어떻게 알 수 있습니까?
그런 다음 메모리 부족으로 인해 OS에서 일시적으로 활동이 중단된다는 것을 어떻게 알 수 있습니까?
감사합니다.
docs, onDestroy
은 이유에 관계없이 활동이 삭제되기 직전에 호출해야합니다. finish가 요청 된 경우 isFinishing
이 true를 반환합니다. 따라서 이것이 틀리면 시스템을 완료해야한다고 가정 할 수 있습니다.
그러나, 문서로도
주 말 : 데이터를 저장하기위한 장소로 호출되는이 방법 에 포함되지 않습니다!
일반적으로 활동이 제대로 종료되지 않을 수도 있습니다. 작업 킬러가 수명주기를 엉망으로 만드는 것과 같은 것들.
제대로 저장하려면 또는 onSaveInstanceState
을 사용하십시오.
수 없습니다.
당신의 활동이 나머지 앱없이 진행될 수 있습니다.이 경우 onDestroy가 호출 될 수 있습니다. 그러나 유닉스에서 kill -9처럼 전체 앱이 한 번에 죽을 수도 있습니다. 현재 앱에서 코드를 실행할 수 없으며 즉시 경고없이 경고 메시지가 표시됩니다.
제대로 처리하려면 모든 중요한 정보를 onPause의 디스크에 저장하고 필요할 경우 나중에 onCreate에서 검색 할 준비가되도록 응용 프로그램을 디자인해야합니다.
안드로이드는 마치 개인 활동이 아닌 프로세스를 죽이는 것처럼 보입니다. http://stackoverflow.com/questions/5227071/understanding-of-isfinishing에서 토론을 참조하십시오. – Kai
"유일한"것이 아닙니다. 귀하의 코드가 안드로이드 만의 죽이는 과정 (app)에 의존한다면, 그것은 잘못된 것입니다. 귀하의 코드가 안드로이드 만 활동을 죽이는 것에 의존한다면, 그것은 틀린 것입니다. 둘 중 하나를 처리하십시오. –
이 문서 (http://developer.android.com/reference/android/app/Activity.html#isFinishing%28%29)를 참조하십시오. finish()를 호출했거나 다른 사람이 완료를 요청했기 때문에이 활동이 완료 과정에 있는지 확인합니다. onPause()에서 자주 사용되어 활동이 일시 중지되었거나 완전히 완료되었는지 여부를 확인합니다. OS가 활동을 죽이는 경우 isFinishing()도 마찬가지입니다. 내가 맞습니까? – Kai
OS를 죽이는 것이 사실이 아니 겠지만 실제로는 직접 테스트하지는 않았습니다. 왜 OS가 그것을 죽이고 있는지 알아야합니까? –