티스토리 뷰
728x90
Fragment 를 사용하다 보면 종종 Context 나 Activity 가 필요할 때가 있다.
Java 에서는 getContext(), getActivity() 를 써왔지만 Kotlin 에서는 null 을 return 할 수 있어 하단과 같이 많이 쓴다.
이번 포스팅에서 위와 같은 상황의 대안으로 Support Library 27.1.0 부터 제공하고 있는 requireContext(), requireActivity() 를 알아보자.
requireContext, requireActivity 구현부
하단은 Fragment 에 있는 requireContext(), requireActivity() 함수의 구현부다.
막상 보면 별거 없다. context 나 activity 가 null 인 경우는 IllegalStateException 을 발생 시킨다.
getXXX() vs requireXXX()
"context!!, activity!!" 처럼 쓰는 것과 어떤 차이가 있을까?
큰 차이는 아니지만 Exception 이 구체적이다.
"context!!, activity!!" 인 경우는 NPE 가 발생 하지만, requireXXX 는 IllegalStateException 이 발생한다.
("Fragment " + this + " not attached to an activity.") 요런 설명까지 해준다.
즉, Fragment 에서 context 나 activity 를 사용하는 상황이 fragment 가 attach 되서 정상적인 lifecycle 이라면 requireXXX 를 쓰는 것이 바람직하다.
728x90
'Android' 카테고리의 다른 글
Android 화면 녹화 (0) | 2021.08.31 |
---|---|
유용한 에니메이션 라이브러리 - Lottie (0) | 2021.08.31 |
Glide 로 background image 설정하기 (0) | 2021.08.06 |
Activity Result API (0) | 2021.06.04 |
유용한 이미지 라이브러리 - Glide (2) (0) | 2021.05.13 |
댓글
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- android activity flag
- Android Service
- M2E
- registerForContextMenu
- 무료채굴
- 채굴앱
- android flag activity
- WEMIX
- android task
- 안드로이드 서비스
- onContextItemSelected
- bindservice
- notifyDataSetChanged
- StringUtils
- 리워드 어플
- 앱테크 추천
- mPANDO
- task
- 리워드앱
- Intent
- 안드로이드 인텐트
- task 생성
- BroadcastReceiver
- onCreateContextMenu
- StartService
- 앱테크
- 무료 채굴
- RoomDatabase
- android intent
- p2e
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함