파 코스! 값 비싼 잘못된 정보가 섞인 귀중한 정보가 있습니다. 아니요, 온라인 문서는 프로세스가 종료되는 상황을 정확히 지정하지 않습니다. 이는 예고없이 변경 될 수 있으므로 고의적입니다. 물론, onDestroy()가 호출되는 가장 보편적 인 이유는 시스템에 메모리가 부족하다는 것입니다. 새로운 시스템에서는 메모리가 너무 많기 때문에 보편적이지 않습니다. 그러나 이것이 그 유일한 이유라고 보증 할 수는 없습니다.
그렇습니다. Android와 개발자 간의 '계약'은 규칙을 준수하고 필요할 때 필요한 라이프 사이클 콜백을 구현하면 작동하고 어떤 상황에서 정확히 알 필요가 없다는 것입니다 onStop(), onSaveInstanceState() 및 onDestroy()가 호출됩니다.
이제 Google과 달리 계약서의 말씨가 점에서 다소 모호하다는 것을 인정합니다. 이것은 다른 이유로는 포어 그라운드와 같은 표준 산업 의미가있는 용어를 사용하기 때문입니다. 그러나 약간 변경된 감각으로 사용합니다. 그리고 그 변경은 절대 모호한 장소에서만 설명되거나 설명되지 않습니다. 또한이 다이어그램이 "상태간에 활동이 발생할 수있는 경로"를 표시하는 데 도움이되지는 않지만 onDestroy()가 여러 번 호출 될 수 있음을 나타내지 못하고 Resumed에서 Stopped 로의 전환을 우회하는 경우조차도 실패합니다. 그러나이 텍스트는 그 가능성을 분명히 설명합니다.
"Application Fundamentals"의 Application Lifecycle 섹션을 읽는 것만으로는 충분하지 않습니다. 대신, Activity에 대한 콜백 및 Process의 "Application Fundamentals"섹션에서 각각의 Javadoc을 읽어야합니다.
그런 다음 Log4D 문을 각 콜백에 넣고 logcat 출력을 조사하여 수명주기 동안 응용 프로그램을 순환시키는 것이 매우 유용합니다. 그러나 그때조차도 위에서 언급 한 온라인 문서 중 하나에서 정당성을 찾을 수 없다면 logcat에 표시된 순서대로 일어나는 생명주기 이벤트에 의존하지 마십시오.
[developer.android.com] (http://developer.android.com/guide/topics/fundamentals.html#actlife)의 'Application Fundamentals'섹션에서 활동 라이프 사이클에 대해 자세히 설명합니다. 대부분의 질문에 답해야합니다. –
아니요, 위의 질문에 대답하지 않습니다. 의심 스럽다면 한번보세요. – cody
@cody : Josef가 링크 한 문서를 통해 약간의 시간이 걸리고 * 읽혀지면 안드로이드 애플리케이션 라이프 사이클이 어떻게 작동 하는지를 이해해야합니다. 그러면 다시 질문에 답해야합니다. 불분명 한 것들이 아직도 있다면, 이것에 대해 * 구체적인 * 질문을하는 것이 좋습니다. – Nailuj