ABOUT ME

오늘 공부해도 내일 까먹는 나를 위해 남겨 두는 공부 히스토리

Today
Yesterday
Total
  • Activity 생명주기
    Study/면접준비 2019. 8. 14. 18:54

    1. onCreate()

    액티비티가 처음 실행될 때 호출된다.

    레이아웃을 구성한다.

    초반에 번들 값은 null이지만 액티비티가 강제종료되었다가 다시 실행되는 겨우 번들에는 이전 상태의 정보가 저장되어 있어 복구할 수 있다. (onSaveInstanceState, onRestoreInstanceState)

     

    2. onStart()

    화면에 보이기 직전에 호출된다.

    리소스를 설정한다.(BroadCastReciever 등록)

     

    3. onResume()

    화면이 포커스를 얻기 전 호출된다. 화면 갱신 처리

     

    4. onPause()

    포커스를 잃었을 때 호출 된다. (예: 팝업이 떠서 액티비티의 일부를 가렸을 때)

    이 후 다시 포커스를 찾게 되면 onResume으로 돌아간다.
    데이터 저장, 스레드 중지 등의 처리는 여기서 한다.

     

    5. onStop()

    홈키로 액티비티가 내려가거나 화면이 다른 액티비티에 온전히 가려져 보이지 않는 상태. 

    메모리가 부족한 경우 호출되지 않을 수도 있다.

     

    6. onRestart()

    onStop() 이후 유저가 다시 액티비티로 돌아왔을 때 실행된다.

    onStart()가 호출 되기 전 필요한 설정 작업을 수행한다.

     

    7. onDestroy()

    액티비티가 소멸 될 때 호출된다. finish() 메소드가 호출 되거나, 시스템 메모리이 메모리 확보를 위해 액티비티를 제거할 때 호출된다.

    메모리 확보가 매우 시급할 땐 호출되지 않을 수도 있다. 화면 회전시에 호출된다.

     

     

    * 그 외 Activity 상태를 복구하는 콜백

    사용자가 일정시간 사용하지 않거나 백그라운드 상태일 때, 메모리가 부족하면 안드로이드는 액티비티를 강제 종료 시킨다.

    사용자가 다시 액티비티로 돌아왔을 때, 이전 상태로 복원하기 위해 다음 메소드가 필요하다.

     

    8. onSaveInstanceState()

     

    액티비티가 paused상태로 변경 될 때, onPause()가 호출되기 전에 호출된다. 번들에 액티비티의 상태를 저장한다.

     

    9. onRestoreInstanceState()

    강제 종료된 액티비티가 다시 실행 되었을 때, onSaveInstanceState() 에서 저장한 값으로 복구한다.

     

    *케이스별 호출

     

    시작할 때 : onCreate() - onStart()- onResume()

    화면 회전시 : onPause() - onStop() - onDestroy()- onCreate() 

    다른 액티비티가 위에 뜰 때/ 전원키로 화면 OFF/ 홈키를 눌렀을 때 : onPause() - onStop()

    백키로 액티비티 종료시 : onPause() - onStop() - onDestroy()

    백키로 이전 액티비티로 돌아올 때/ 홈키로 나갔다가 돌아올 때: onRestart() - onStart() - onResume()

    다이얼로그나 투명 액티비티가 위에 뜰 때 : onPause()

     

     

    'Study > 면접준비' 카테고리의 다른 글

    Java Garbage Collection에 대하여  (0) 2019.08.14
    안드로이드 4대 컴포넌트  (0) 2019.08.14
Designed by Tistory.