728x90

ViewBinding 2

[Android] Fragment에서 Binding 객체를 null로 설정해야 하는 이유

Fragment에서 onDestroyView에서 binding 객체를 null로 설정하는 것은 메모리 누수를 방지하기 위한 중요한 관행입니다. Fragment의 LifeCycle은 Activity의 LifeCycle과 다르며, 특히 뷰의 생성과 소멸 과정에서 차이가 있습니다. Fragment View 생성 => onCreateView View 소멸 => onDestroyView Activity View 생성 => setContentView() View 소멸 => onDestroy() 호출 받을때 까지 유지 Activity에서 "binding = null"을 설정하지 않는 이유 액티비티의 View 생명주기는 액티비티 자체의 생명주기와 밀접하게 동기화 되는 것이 당연합니다. setContentView()를 ..

Android 2024.03.15

[Android] ViewBinding 총 정리

View Binding 뷰 바인딩 이전에 개발자들은 findViewById 메소드를 사용하여 XML에 정의된 뷰를 코드로 직접 찾아서 사용했습니다. 하지만 이 방법은 ① 타입 안전성이 보장되지 않고, ② View ID가 변경되거나 제거될 경우 런타임 시점에서 앱이 충돌할 위험이 있습니다. View Binding은 이러한 문제점을 해결하기위해 도입되었습니다. 바쁘신 분들은 제일 아래 3줄 요약을 보시길 바라겠습니다. findViewById와의 차이점 타입 안전성 컴파일 시간에 생성된 바인딩 클래스를 통해 뷰를 참조하기 때문에 타입 안전성 보장 null 안전성 null 체크를 수행하지 않아도 되므로 코드가 더욱 간결해진다. (findViewById의 경우 뷰가 존재하지 않을 경우 null을 반환하므로 반드시..

Android 2024.03.14
728x90
LIST