본문 바로가기
개발/Android

[Android] getContext와 requireContext 차이점

by blacktree 2022. 8. 30.
반응형

오늘은 getContext와 requireContext 차이점에 대해서 알아보겠습니다. 

 

 

android 팀에서 support library 27.1.0.에 NonNull, Nullable를 SDK메서드 일부에 주석을 달았습니다. 

 

왜 주석을 달았을까요?

fragment가 attach 되지 않은 상태에서 getContext를 호출하면 null을 반환합니다. 

예를 들어 Thread나 Runnable등을 사용시 fragment가 attach된 상태라는 것을 보장할 수 없는 경우가 발생합니다.

이경우 잠정적으로 NullPointerException이 발생할 수 있습니다. 

 

어떻게 수정해야 할까?

1. NonNull일때만 사용하는 경우 getContext에서 requireContext() 로 변경하여 사용해야 한다.

2. 호스트에 연결되지 않은 경우 requireContext()는 예외를 발생하니 fragment수명주기에 맞춰서 사용해야 한다.

 

기타 유사한 내용
1. getActivity 대 requireActivity
2. getHost 대 requireHost
3. getFragmentManager 대 requireFragmentManager

728x90
반응형

댓글