도대체 생명주기가 뭔데 화딱지나게 하는것인가
왜 액티비티가 사라지기 전에 먼저호출되고 언제 써야하고 어? 열받게? 어?
개발 하려면 정말 기본부터 알아야하기에
내가 복붙하려고 쓰는 개발일지
역시 개발은 복붙이지
컨트롤 씨븨
검색하면 제일먼저나오는 수명주기 그러니까 저게뭐냐고 !
액티비티가 생성되면서 사라질때까지의 한 주기를 표현한것인데 적절한 위치에 적절한 소스를 넣어야 제대로 작동됨
맨날 FATAL ERROR:: 지겹고여
1. onCreate()
시스템이 먼저 활동을 생성할 때 실행되는 것으로, 필수적으로 구현해야 합니다.
활동의 전체 수명 주기 동안 한 번만 발생해야 하는 기본 애플리케이션 시작 로직을 실행합니다.
처음 액티비티가 실행 될때 무조건 한번은 생성이 되어야 하는 부분
한번 생성됐으면 끝이지모
사용자 인터페이스 선언(XML 레이아웃 파일에 정의됨), 멤버 변수 정의, 일부 UI 구성 등의 활동에 관한 기본 설정등을 요 위치에서 해주면 좋음
2. onStart()
호출되면 활동이 사용자에게 표시되고, 앱은 활동을 포그라운드에 보내 상호작용할 수 있도록 준비합니다.
필수는 아니지만 구현해놓으면 잘쓰겠지
생성 해주고 시작이 되면 이부분이 호출 된다.
보통 UI 관리할 때 초기화 하는 부분을 넣으면 좋당 빠르다구하는데 모르게따
3. onResume()
활동이 재개됨 상태에 들어가면 포그라운드에 표시되고 시스템이 onResume() 콜백을 호출합니다. 이 상태에 들어갔을 때 앱이 사용자와 상호작용합니다. 어떤 이벤트가 발생하여 앱에서 포커스가 떠날 때까지 앱이 이 상태에 머무릅니다. 예를 들어 전화가 오거나, 사용자가 다른 활동으로 이동하거나, 기기 화면이 꺼지는 이벤트가 이에 해당합니다.
공식문서는 뭔가 이해하기 어려움...
그러니까 액티비티상태에있다가 다른액티비티로 넘어간다던가, 백그라운드로 갔다던가 했다가 다시 돌아오는경우 이 함수가 콜백된다.
내가 돌아와따!!! 하는 의미
4. onPause()
시스템은 사용자가 활동을 떠나는 것을 나타내는 첫 번째 신호로 이 메서드를 호출합니다(하지만 해당 활동이 항상 소멸되는 것은 아님). 활동이 포그라운드에 있지 않게 되었다는 것을 나타냅니다.
그러니까 잠깐정지! 다른액티비티가 실행될때 요게 호출된다.
데이터를 저장하거나 다른 쓰레드를 중지시킬때 요긴하게 써먹긔
5. onStop()
새로 시작된 활동이 화면 전체를 차지할 경우에 적용됩니다.
여기에서 수명 주기 구성요소는 구성요소가 화면에 보이지 않을 때 실행할 필요가 없는 기능을 모두 정지할 수 있습니다.
앱이 사용자에게 보이지 않는 동안 앱은 필요하지 않은 리소스를 해제하거나 조정해야 합니다. 예를 들어 앱은 애니메이션을 일시중지하거나, 세밀한 위치 업데이트에서 대략적인 위치 업데이트로 전환할 수 있습니다.
더이상 액티비티를 쓰지 않을때 호출되는 부분. 그러나 메모리가 부족한경우 호출이 안되고 바로 Destroy 넘어가서 뻑날 수 있음 주의
6. onDestroy()
활동이 소멸되기 전에 호출됩니다. 시스템은 다음 중 하나에 해당할 때 이 콜백을 호출합니다.
- (사용자가 활동을 완전히 닫거나 활동에서 finish()가 호출되어) 활동이 종료되는 경우
- 구성 변경(예: 기기 회전 또는 멀티 윈도우 모드)으로 인해 시스템이 일시적으로 활동을 소멸시키는 경우
그냥 액티비티 사라져버렷! 할때 호출
근데 문제는 기기회전을하면서 이부분이 호출하기 때문에 데이터가 저장되지않고 리셋되는 경우가 발생
그래서..요새는 뷰모델을 쓴다긔....... 공부중인데 하나도모르겠다귯..
처음부터 다시 차근차근 해이지....해봐야지..
액티비티의 어느 부분이 표시될지를 미리 파악해서 그위치에 맞게 코드를 잘 복 붙 해야한다.
복붙쨔응
https://developer.android.com/guide/components/activities/activity-lifecycle?hl=ko#alc
'안드로이드 개발일지' 카테고리의 다른 글
[kotlin/안드로이드] 백그라운드에 있다가 돌아오는 시간 계산하기System.currentTimeMillis 초/분/시 시간 계산 (0) | 2023.03.30 |
---|---|
[kotlin/안드로이드] 다이얼로그 전체화면으로 만들기 (0) | 2023.02.27 |
[kotlin/안드로이드] 코틀린 웹뷰 완전 기본 세팅 네이버띄우기 연습 (0) | 2023.01.03 |
댓글