2012-09-17 3 views
6

가능한 중복 : Android Activity Life Cycle - What are all these methods for?에서 OnCreate()()

에서 OnCreate와 ONSTART의 차이점은 무엇입니까
Difference between onCreate() and onStart()?
?

제 생각에 OnCreate는 응용 프로그램이 처음 열릴 때 호출되며 결코 다시 호출되지 않습니다. 사실입니까? 정의를 복사하여 붙여 넣기보다는 자신의 말로 정교하게 설명해 주실 수 있습니까? 고맙습니다!

+0

http://developer.android.com/reference/android/app/Activity.html – sissonb

+0

http://stackoverflow.com/questions/8515936/ 모두 -이 - 방법 - – asteri

+0

에 대한 "내 이해는 OnCreate는 ** 응용 프로그램 **이 처음 열릴 때만 호출됩니다." - 'app', 'application'및 'Activity'라는 용어를 혼동하지 마십시오. 'Activity'가 파기 되어도 응용 프로그램이 계속 실행될 수 있으며, 파기 후에 'Activity'가 다시 '생성'되므로 다른 응용 프로그램 구성 요소가 여전히 존재하는지 여부에 관계없이 'onCreate (...)'가 다시 호출됩니다 실행 여부. – Squonk

답변

8

시스템 리소스가 낮아서 기기가 활동을 중단하지 않는 한 앱을 종료하고 돌아갈 때마다 onStart가 호출됩니다. 그러나 응용 프로그램 프로세스가 종료되면 모든 자원이 릴리스되므로 onCreate가 반환 될 때 다시 호출됩니다.

+0

기술적으로 사실이 아닙니다. "포커스를 잃습니다"라고 말하면 팝업 (대화 상자)이 나타날 때 이런 일이 발생할 수 있습니다. '활동'은 계속 표시되며 중지되지 않고 일시 중지됩니다. 팝업 창이 닫히면 기본 '활동'이 재개됩니다. – Squonk

+1

포커스 손실 부분이 제거되었습니다. – DaveJohnston

0

이것은 반대 기능인 onDestroy 및 onStop으로 시작하는 것이 가장 잘 설명됩니다.

onDestroy는 활동이 처리되거나 종료 될 때 호출됩니다. 다음 번에 열 때 onCreate가 호출됩니다.

onStop은 응용 프로그램이 화면을 벗어날 때마다 호출되며 더 이상 볼 수 없습니다. 이는 대개 이전 활동의 상단에 새 활동이 작성되어 발생합니다. 액티비티가 다시 표시되면 onStart가 호출됩니다.

이 페이지의 그림은 다양한 상태를 활동을 설명 정말 좋은 직업은 관련 전환 방법과 함께,에서 할 수있다 않습니다 http://developer.android.com/training/basics/activity-lifecycle/starting.html 심각

6

문서 - 농담하지 않고 있어요 -이 수명주기 (시작, 작동 및 완료 방법)가 작동하는 방법을 설명하는 very, very pretty image입니다. Activity가 생성 될 때

  • onCreate()라고;

    이미지 직접 here을 연결, 기본적으로이가 말한다 즉, 시작되거나 시작됩니다. (방향이 변경되면 트리거됩니다.) 프로세스가 종료 된 후 다시 호출 될 때 다시 호출됩니다.

  • onStart()은 시작시 onCreate() 다음에 호출됩니다. 또한 앱이 onStop() (이후는 onRestart()) 이후로 이동하면 Activity이 더 이상 표시되지 않고 발생합니다 (이는 사용자가 화면에서 활동을 볼 수있는 시간이 ""인 동안 발생합니다). 포 그라운드에 있지 않고 사용자와 상호 작용하지 않을 수도 있습니다. ").

다이어그램은 정직하게 말하면 1,000 단어 미만입니다. 응용 프로그램이 표시 될 때마다 http://developer.android.com/training/basics/activity-lifecycle/starting.html

onStart()가 호출 :

+3

"시작시 onStop()이 onCreate()에 이어 호출됩니다."... 내가 당신이라면 편집 할 것입니다. ;) – Squonk

+0

굉장! 에릭, 정말 고마워! 그래도 한 가지 더 묻습니다. 필요합니까? setContentView (R.layout.activity); OnStart의 ? 아니면 이미 OnCreate에 가지고 있기 때문에 중복됩니까? –

+0

@ 스퀘크 이유는 무엇입니까? 'finish()'가'onCreate()'의 끝 전에 호출되지 않으면 절대적으로 사실입니다. – Eric

0

이 웹 사이트는 안드로이드 라이프 사이클의 고체 그래픽 표현을 제공합니다. 여기에는 응용 프로그램이 처음 생성 될 때와 종료되지 않고 화면에 다시 표시 될 때가 포함됩니다.이 두 번째 동작은 사용자가 응용 프로그램을 전환하고 응용 프로그램이 백그라운드에서 작동 할 때 발생합니다. 응용 프로그램이 보이지 않게되면 onStop()이 호출되지만 응용 프로그램이 완전히 "소멸"되면 onDestroy()이 호출됩니다. onDestroy() 호출 후에는 응용 프로그램을 수명주기 시작시 다시 만들어야합니다.

onStart()은 응용 프로그램이 대화 상자와 같은 이유로 포커스를 잃은 후에 호출되지 않습니다. 이러한 상황에서는 초점이 회복 될 때 onPause() 다음에 onResume()이 호출되고

1

거의입니다. onCreate는 일반적으로 앱이 시작될 때 호출되지만, Activity가 다른 이유로 파괴/해제되는 경우에도 호출 될 수 있습니다. 기본적으로 Activity에 대해 한 번 설정을하려면 onCreate를 재정의해야합니다. 사용자가 액티비티를 탐색 할 때마다 무언가를하고 싶다면 onStart를 재정의해야합니다. 액티비티가 표시/활성화 될 때마다 무언가를하고 싶다면 onResume을 사용하십시오. 전체 앱에 대해 일회성 설정을 수행하려는 경우 (예 : 한 번만 실행) onCreate를 사용해야하지만 설정을 완료했는지 확인하고 그렇지 않은 경우에만 수행하십시오.

체크 아웃이 페이지의 매우 유용한 다이어그램 : Activity reference