2022/7/27

시코·2022년 7월 27일

객체지향의 4대 특성 (클래스, 객체, 인스턴스, 캡슐화, 상속, 추상화, 다형성)
https://sjh836.tistory.com/158


OnSaveInstanceState
https://selfish-developer.com/entry/onSaveInstanceState

onCreate()와 onDestroy() 는  애플리케이션이 생성될 때와 종료 될 때 한 번씩만 불리는 콜백 함수로 알려져 있지만 디바이스의 설정 값이 갑자기 바뀌어 화면을 처음부터 새로 그려줘야 할 때도 불린다. 대표적으로 스마트폰을 회전 시키는 경우(rotate)가 이에 해당한다. 
확인해보기 위해 테스트 애플리케이션의 콜백 함수들에 로그를 넣고 에뮬레이터(오레오 8.1) 에 설치한 후 오른쪽으로 회전 해봤다. onPause() 함수부터 불리는 부분이 회전 후에 나온 로그며 이중에는 onCreate()와 onDestroy()도 포함되어 있다.onCreate()와 onDestroy() 함수가 다시 불린다는 뜻은 회전하기 전까지 설정해둔 변수 값들이 모두 초기화 된다는 것을 의미하기도 한다. 만약 애플리케이션 화면에 특정 값을 바꾼 상태로 회전을 했다면 처음 애플리케이션을 실행한 상태로 화면이 바뀌기 때문에 지금까지 작업한 것들이 모두 날라가게 된다.
안드로이드에선 이런 상황을 대처하기 위해 onSaveInstanceState(Bundle outState) 라는 콜백 함수를 뒀다. 이 함수는 모든 인자들이 초기화 되는 onDestroy() 함수 호출 전에 실행되며 함수의 인자에 key-value로 여러가지 데이터를 넣을 수 있다. 변경된 인자는 최종적으로 onCreate(Bundle savedInstanceState) 함수의 인자 값으로 전달 된다.


안드로이드로 배우는 자바의 인터페이스 (콜백, 리스너, 옵저버)
https://www.charlezz.com/?p=768

[개념이해]자바의 인터페이스 이해
https://codeasy.tistory.com/2

interface 초간단 이해
https://daldalhanstory.tistory.com/288

[kotlin] Android Studio 인터페이스 사용 - Adapter와 Activity간의 상호작용 (어댑터뷰 항목의 가격 계산, 총액 구하기)
https://6yejin.tistory.com/5

0개의 댓글