활동과 FragmentActivity의 차이점


228

나는 조각 작업을하고 있었고 두 가지를 발견 Activity했으며 FragmentActivity여러 번 사용되었습니다. 나는이 변경 될 때 때문에이 두 가지 사이에 차이가 있다는 것을 알고 싶어 Activity함께 FragmentActivity,이 응용 프로그램에 영향을 미치지 않았다.

답변:


316

A FragmentActivityAndroid 지원 패키지Activity 용으로 구축 된 하위 클래스입니다 .

FragmentActivity클래스는 이전 버전의 Android와의 호환성을 보장하기 위해 몇 가지 새로운 메소드를 추가하지만 그 외에는 실제로 두 가지 차이점이별로 없습니다. 그냥 확인 당신은 모든 통화 변경 만든다 getLoaderManager()getFragmentManager()getSupportLoaderManager()하고 getSupportFragmentManager()각각을.


4
나는 getSupportLoaderManager () 및 getSupportFragmentManager ()에 대한 호출을 변경하지 않았지만 여전히 잘 작동합니다.
Rookie

31
그것이 그렇게 위험한 이유입니다. : P. FragmentActivity에서 getLoaderManagergetFragmentManager메소드를 상속받으며 Activity결과적으로 컴파일러는 불평하지 않습니다. 잘못된 클래스 LoaderManagerFragmentManager클래스를 가져올 가능성이 있습니다 . Android SDK ( )가 아닌 지원 패키지 ( android.support.v4.app) 에서이 클래스를 가져와야합니다 . android.app
Alex Lockwood

1
android 2.x 버전에 프래그먼트를 사용하려면 프래그먼트를 지원하는 버전에 FragmentActivity nad를 사용해야한다고 Activity를 사용해야한다고 말할 수 있습니까?
Rookie

55
나는 당신이 말하는 것이 맞다고 생각합니다. 하지만 100 % 명확하게하려면 ... 사용하는 Activity경우 사용하십시오 android.app.Fragment. 를 사용하는 FragmentActivity경우 사용하십시오 android.support.v4.app.Fragment. 에 예외를 발생시킬 수 있으므로 android.support.v4.app.Fragment를에 연결하지 마십시오 android.app.Activity.
Alex Lockwood

13
먼저이 튜토리얼을 시도 하십시오 ( Fragments응용 프로그램에서 사용하는 방법 ). 그런 다음 이 학습서 를 계속 Fragment하십시오 (지원 패키지에서 s를 사용하는 방법 ). 개발자 사이트 의 문서도 읽을 가치가 있습니다.
Alex Lockwood

4

FragmentActivity프레임 워크의 기본 클래스 인 반면 지원 라이브러리의 일부입니다 Activity. 그것들은 기능적으로 동일합니다.

당신은 항상 사용해야 FragmentActivity하고 android.support.v4.app.Fragment대신 플랫폼의 디폴트의 Activityandroid.app.Fragment클래스. 플랫폼 기본값을 사용한다는 것은 실행중인 장치에서 사용되는 조각 구현에 의존한다는 것을 의미합니다. 이것들은 종종 여러 살이며 지원 라이브러리에서 수정 된 버그를 포함합니다.


1
참고 : minSdkVersion지원 라이브러리는 버전 26.xx 이후 14입니다
오이겐 Pechanec
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.