일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 유광버섯 통조림
- 국방부
- 원스휴먼 요리
- 원스휴먼 스타크롬
- 원스휴먼 황금양 구하기
- 원스휴먼 레시피
- 윤석열
- 홈플러스
- 원스휴먼 쿠폰
- 믹스커피
- 원스휴먼 황금양털파밍
- 커피추천
- 원스휴먼 황금양
- 일론머스크
- 계엄령
- 레시피 파밍
- 원스휴먼 먹이
- 믹스커피추천
- 원스휴먼 동물
- 원달러환율
- 시그니처
- 2차 비상계엄
- 비상계엄령
- 2차계엄
- 계엄령 외신반응
- 원스휴먼 사료
- 1203계엄령
- 홈플러스 시그니처 모카골드믹스커피
- 원스휴먼 레시피 파밍
- Today
- Total
0101011001010111
Android4-3. 액티비티에 생명주기 본문
수업 목표 : 액티비티의 생명 주기를 이해한다.
1.액티비티 생명주기
실행구조
: onCreate()를 통해 시작되고,
> Started(visible)가 되고 //여기서 부터는 화면 실행
>Resumed이 돼서 ,
그러다가 우리가 저번 시간에 second Activity를 호출해 봤잖아요.
그렇게 두번째 Activity가 호출이 되면, 첫번째 Activity는 어디로 가겠어요 ?
(숨어있지롱 ㅋㅋ)
ㄴ 이렇게 숨어있는 상태일 때는 pause상태로 빠짐!
그러다가 액티비티가 화면에서 사라지고, finish를 통해 우리가 종료를 시켰잖아요 ?
그럼 onStop()을 지나서 Destroy()로 종료가 되는거에요.
▲ 이것을 생명주기라고 한다.
생명 주기는 왜 필요할까?
- 그 액티비티가 변하는 상태에 따라서 뭔가 처리해 줘야 될 상황이 발생을 해요.
ex) 내가 어떤 앱을 만들었는데, 그 앱이 다른 앱 activity가 호출되고, 화면이 안 보이게 될 경우에, 다운로드 받고 있는 것을 멈춰야한다.
ㄴ 다운로드 받고 있는 도중에 사용자가 홈버튼을 누를 수도 있고, 다른 앱으로 전환할 수도 있어요 .
그럼, 백그라운드에서 물론 다운로드 받을 수도 있지만, 그 다운로드 받던 것을 내가 멈춰야 할 수도 있잖아요.
그럴때는 이 pause상태가 돌아왔을 때, 뭔가 처리를 걸어주는거에요.
ㄴ /// 즉, 뭔가 앱이 중지 되었을때 상태 = pause , 이때 정지상태일 경우 뭘 할지 처리를 해주는 거다.
각각의 이벤트마다, // 뭐, Resumed, paused, 등등
뭔가 처리할 상황이 있기 때문에,
이 Activity 라이플 사이클 (생명주기)이 존재하고 ,
각각 해당되는 상황에 따라서 해당되는 내용을 넣어주면 됩니다.
2) 액티비티의 수명
액티비티의 수명은 :
onCreate()호출 ~ onDestroy()호출 사이에 있습니다. // 약간 태어남과 죽음 사이같이 생각하면 될듯
onCreate()란?
ㄴ 최초 실행될때
onDestroy가
ㄴ 마지막에 Activity가 종료 될 때 모든 리소스를 해제하고 생을 마감.(ㅋㅋ)
3) 액티비티의 화면이 눈에 보이게 되는 Visibility
- onStart()에서 onStop()호출 사이에 있습니다.
- 이 기간 중에는 사용자가 액티비티를 화면에서 보고 이와 상호 작용 할 수 있습니다
- onStop()이 호출되어 새 액티비티가 시작되면 이 액티비티는 더 이상 표시되지 않게 됩니다.
- 시스템은 액티비티의 전체 수명 내내 onStart() 및 onStop()을 여러 번 호출 할 수 있다.
- 이때 액티비티는 사용자에게 표시되었다 숨겨지는 상태를 오가게 됩니다.
사용자의 눈에 보이는 것은 Start부터 Stopped까지임.
ㄴ 이기간중에는 사용자가 화면으로 볼 수 있고, 상호작용을 할 수 있다.
액티비티가 사용자가 홈버튼을 누르거나 다른액비티티가 호출되거나 하면서 뒤로 사라졌다가 다시 앞으로 나오고 왔다 갔다 반복을 하게 됨.
4) 액티비티가 foreground에서 동작하는 구간
- onResume()에서 onPause()호출 사이를 말합니다.
- 이 기간 중에는 이 액티비티가 화면에서 다른 모든 액티비티 앞에 표시된다.
- 사용자 입력도 여기에 집중됩니다.
- 액티비티는 전경에 나타났다 숨겨지는 전환을 자주 반복할 수 있습니다.
- 예를 들어, 기기가 절전모드에 들어가거나 대화상자가 나타나면 onPause()가 호출됩니다.
이 foreground가 사용자가 화면에 보이는 foreground이고, 뒤로 숨게 되는게 background죠.
만약 pause상태에 빠졌을 때, 뭔가 할게 있다 하면 그 Pause상태에 코드를 넣어주면 됩니다.
5) 수명주기 콜백 메소드
- 액티비티가 생성되면서 해제될 때 까지 액티비티의 상태에 따라서 불려지는 메소드를 라이프 사이클 콜백 메소드라 부른다.
- 애플리케이션 개발자는 필요한 경우에 해당 콜백 메소드를 재 정의하여 필요한 일을 수행하게 할 수 있습니다.
▼주요 콜백 메소드
onCreate():반드시 구현해야하는 메소드로서 액티비티가 생성되면서 호출됨.
- 가장중요한 작업은 화면을 setContentView()를 호출하여 설정하는 것
onPause() : 사용자가 액티비티를 떠나고 있을 때 호출됨.
- 액티비티가 완전히 소멸되는 것은 아니지만 사용자가 돌아오지 않을 수 있기 때문에 그 동안 이루어졌던 변경사항을 저장함
라이프사이클의 모든 주기에는 콜백 메소드가 존재하고,
그 콜백 메소드에 따라서 코드를 넣어주면 됩니다.
6). 액티비티 전환 시 수명주기 콜백 메소드 호출 순서
- FirstActivity에서 SecondActivity 시작
1.FirstActivity의 onPause()
2.SecondActivity의 onCreate() -> onStart() -> onResume() // Resume : 현재 보이는 상태
3.FirstActivity의 onStop()
- 단말기의 뒤로가기 버튼 누름
1.SecondActivity의 onPause()
2.FirstActivity의 onRestart(), onStart(), onResume()
3.SecondActivity의 onStop(), onDestroy()
'Kotlin > 안드로이드_[입문]앱개발' 카테고리의 다른 글
Android4-3. 액티비티에 생명주기_(실습) 콜백 메소드 호출순서 살펴보기 (0) | 2023.08.18 |
---|---|
[질문]Android4-2_ Intent란? 액티비티간의 데이터 전달 (0) | 2023.08.18 |
[질문]Android4-2_ Intent란? Implicit Intent 암시적 인텐트 수신(인텐트 필터) (0) | 2023.08.18 |
Android4-2_ Intent란? Implicit Intent 암시적 인텐트 (0) | 2023.08.16 |
Android4-2_ Intent란? Intent의 객체 / 명시적 인텐트 Explicit Intent 연습해보기 (0) | 2023.08.16 |