[kotlin] 생명주기 복습

Boknami·2023년 4월 5일
0

코틀린

목록 보기
2/19

📖 학습 계기

프로젝트로 인해서 카카오,네이버,구글에 대한 로그인을 구현하고 있다.
그런데 프로젝트를 구현하다보니 공식사이트에서도 그렇고 서칭해서 나오는 여러 블로그 글들에서 생명주기에 대한 코드들이 보였다. 저번에 생명주기를 간단히 정리해보았지만 사실 이해가 안 가는 부분들도 있었고, 뇌리 속에 완벽한 개념이 박히지 않은 것 같았다.

🎉 학습 내용

액티비티 ⇒ 안드로이드 상의 화면, 스택형태로 쌓인다

ctrl + o ⇒ 준비되어있는 함수들을 불러올 수 있다.

굳이 생명주기를 다 만들 필요는 없고, 필요한 경우에 처리를 할 수 있다.

1. onCreate

액티비티 또는 프래그먼트가 최초에 생성될 때 어떠한 행동을 할래?

2. onResume

재개?

[1] 액티비티가 화면상에 보여지고 있는데 사용자로부터 어떠한 응답도 받지 않은 상태

[2] 액티비티가 중지 되었던 것이 다시 시작하는 시점에 이것을 실행 또는

3. onPause

onResume에서 중지되었다고 했는데 중지를 발생시키는게 onPause

중지 상황

[1]홈 버튼을 눌러서 홈화면으로 나갔을 때, 메인 액티비티가 죽은 상태는 아니고 중지상태

[2]다른 액티비티가 활성화됐을때

메인인 A 액티비티에서 새 액티비티 B를 불러서 작업하는 동안 ⇒ A는 onPaushe

B 액티비티가 finish되서 죽고 A가 다시 돌아왔을 때 ⇒ A는 onResume

4. onDestory

액티비티는 언젠가는 파괴되어야..

파괴되는 시점을 알고 있다면 여러가지 할 수 있는 게 많다.

네트워크 통신을 하고 있던 것을 끊어주던가 할 때 사용

B 액티비티가 finish되서 죽을 때 ⇒ onDestory가 발생


흐름

액티비티 런치드

온 크리에이트

온 스타트

온 리쥼

⇒ 기본적으로 이렇게까진 흘러간다.

그 후로 액티비티 러닝(액티비티가 정상 실행되고 있어요)

이 상태에서 사용자 홈 버튼 ⇒ onPause

[1] 홈에서 다시 앱 켜 ⇒ onResume

[2] 아예 나가 → onStop → onDestory → 액티비티 셧다운

#실제 앱 실행

onCreate ⇒ 앱이 생성

onStart ⇒ 액티비티가 이제 화면에 보이기 직전

onResume ⇒ 액티비티가 화면에 보이기 시작, 사용자와 아직 상호작용X

============기존===============

홈 버튼 ⇒ onPause → onStop()

무슨 차이? ⇒ onPause 다른 액티비티로 전환 시에 발생하고, onStop은 기존 액티비티가 완전히 안보이는 상태까지 도달했을 때

다시 어플로 돌아옴 ⇒ onRestart → onStart → onResume

마지막이 onStop상태


사용예제

음악앱에서 홈 버튼 눌러서 나갔을 때는 음악을 꺼줄 수 있도록 하거나 메시지를 띄어주기


onPause ⇒ 다른 액티비티로 change가 시작될 때

onStop ⇒ 다른 액티비티가 완벽히 가릴 때

onStop조건은 change되는 액티비티가 완벽하게 화면을 가려야한다. 그렇기 때문에 change되는 액티비티가 투명하다면? onStop까진 안가고 onPasue까지만 간다!

참고 사이트
https://www.youtube.com/watch?v=gYacRFMEPjk&ab_channel=hongdroid%ED%99%8D%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C

0개의 댓글