오늘 개발하다가 fragment를 만들다가 코드가 뭔가 다른 것 같아서 보니 fragmentActivity를 잘못 상속받고 있었다. 이 두 클래스는 뭐가 다른건지 갑자기 궁금해서 찾아본 내용을 정리해본다.
일단 이들의 상속관계는 다음과 같다.
java.lang.Object
↳ android.content.Context
↳ android.content.ContextWrapper
↳ android.view.ContextThemeWrapper
↳ android.app.Activity
↳ androidx.activity.ComponentActivity
↳ androidx.fragment.app.FragmentActivity
↳ androidx.appcompat.app.AppCompatActivity
실제로 각 특징을 간단하게 정리해보면 다음과 같다.
Fragment
FragmentActivity
AppcompatActivity
Activity
FragmentActivity도 결국은 Activity여서 그냥 FragmentActivity만 가진 앱을 만들 수 는 있다.
그리고 getSupportFragmentManager() 로 fragmentManager를 가져올 수 있어서 프래그먼트 관리를 쉽게 할 수 있다.
하지만 유의할 점이 있는데,
그래서 각 특징을 봤을 때 FragmentActivity는 탭이나 슬라이더 같이 fragment를 변경할 일이 많은 곳에 사용하면 좋을 것 같다.