본문 바로가기

전체 글

(34)
Lifecycle Activity, Fragment 와 같은 생명 주기를 가진 컴포넌트들은 특정 상황이 되면 Android 프레임워크에서 자동으로 Lifecycle Callback 메서드를 호출해줍니다. Activity 의 각 Lifecycle Callback 메서드에 Log 를 찍어보면 현재 Lifecycle state 가 어떤 지 금방 확인할 수 있지만, 어떤 경로를 통해 Lifecycle 의 state 가 변경되는 지 코드를 통해 분석해보기로 했습니다. 아래의 Activity Lifecycle state 가 업데이트 되는 경로는 앱을 처음 실행하여 MainActivity 가 실행될 때의 경로를 확인한 것입니다. ActivityThread 에서 관찰중인 Looper 에 새로운 Activity 를 실행해달라는 메시지가 ..
Fragment 내에 ViewPager 를 사용한 Fragment 호스팅 시 Navigation 문제 상황 AFragment 내에 ViewPager2 를 사용하여 BFragment 를 호스팅하고 있음 BFragment 의 특정 UI 요소를 클릭하면 CFragment 로 navigate 되어야 하는 상황 문제 발생 BFragment 의 UI 요소를 클릭하여 CFragment 로 navigate 하는 순간 java.lang.IllegalArgumentException: Navigation action/destination com.xxx.xxx:id/action_BFragment_to_CFragment cannot be found from the current destination Destination(com.xxx.xxx:id/aFragment) label=AFragment class=com.xxx.xxx...
setContentView Android 프로젝트를 생성하면 MainActivity 클래스의 onCreate() 메서드에서 setContentView() 메서드를 호출하는 코드가 기본으로 생성됩니다. setContentView() 메서드가 정확히 어떤 작업을 담당하는 것인지 알지 못한 채 그냥 "setContentView() 메서드에 전달한 Layout 파일이 파싱되고, View 인스턴스가 생성되겠지?" 라고만 생각했었는데, Android 의 View System 에 대해 좀 더 알고 싶어져서 과연 setContentView() 메서드는 내부적으로 어떤 동작을 하는지 분석해보기로 했습니다. 총 9단계로 setContentView() 메서드를 분석하였습니다. 1. MainActivity 가 상속받은 AppCompatActivity ..