728x90
더보기

안드로이드 / Android Developement / 액티비티 생명주기  / Activity Life cycle / 뷰모델 / View Model / 로깅 / Logging / SaveInstanceState / SIS

 

실무에 바로 적용하는 안드로이드 프로그래밍 4판 (제이펍, 크리스틴 마시캐노 외) 책의 리뷰입니다...
(개인 공부 목적으로 작성)

 

3장은 액티비티 생명주기를 다루고

화면 회전(onPause ) 에서 데이터가 초기화되는 문제와,

생명주기 콜백 함수를 호출하지 않고 종료되는 경우에 데이터 저장을 위해 SIS를 사용하는 방법을 배웠다

 

1. 뷰모델

뫄뫄ViewMolde.kt << ViewMoldel class 상속 형태로 만든다.

특정 액티비티화면과 연결되고,

해당 화면에 올라갈 간단한 데이터를 형상화 하는 로직을 두기 좋다.

예제 앱에서는 문제 리스트와 다음 문제로 넘어가는 함수등을 두었다.

androidx.lifecycle 패키지의 일부이다.

소멸 시 onCleared() 호출

액티비티의 onCreate 내부에 프로바이더를 이용해서 인스턴스화 한다.

액티비티가 새로 생성되어도 뷰모델은 유지되다가 Destroy 시 같이 사라진다.

그러므로 뷰 모델은 액티비티를 참조하면 안 됨

 

2. 생명주기

액티비티의 상태이다.

나의 언어로(?) 다시 정리하자면

상태는 크게 4가지로

없음 / 만들어졌으나 화면에 안보이는중 / 화면에 일부또는 전체 보이지만 상호작용x / 젤위에서 상호작용 중

이렇게 있고

각 함수가 호출되어 상태가 바뀔 때 어떤 처리를 해줄지 override 해줄 수 있다.

super 써주어서 미리 다 구현된걸 편하게 가져다 쓴다.....

귀...귀찮아

공식문서 히히

https://developer.android.com/guide/components/activities/activity-lifecycle?hl=ko

 

활동 수명 주기에 관한 이해  |  Android 개발자  |  Android Developers

활동은 사용자가 전화 걸기, 사진 찍기, 이메일 보내기 또는 지도 보기와 같은 작업을 하기 위해 상호작용할 수 있는 화면을 제공하는 애플리케이션 구성요소입니다. 각 활동에는 사용자 인터페

developer.android.com

 

3. onSaveInstanceState

액티비티, 프로세스 소멸 시에도 데이터를 저장하는 수단...

Bundle 이라는 객체에 키-값 쌍의 데이터들을 저장한다.

onPause 에서 자동으로 호출되어 번들에 정보를 저장하고 액티비티가 새로 생성될 때 Bundle?에서 저장된 값을 가져와 다시 셋팅할수있다.

액티비티 정상 종료시나 기기 재부팅시에 폐기된다.

 

뷰모델과 SIS는 얼핏 용도가 비슷해보이지만 앞으로 다른 쓰임을 갖는다고 한다..

lifecycle-viewmodel-savedstate 라이브러리가 배포되었다고 하니..알고있으면 좋겟지만 지금은 책을 끝내는걸 먼저 해야지 하하....

뭐 일단 안쓰더라도 공부한것이 안드로이드를 이해하는데 도움이 된다.

실은 이 챕터를 서너번 읽으면서 약한 코틀린 문법 부분도 보강되는것 같다....

 

언제쯤 코딩해서 밥벌어먹을수있으려낭

 

728x90

+ Recent posts