Difference between Activity and FragmentActivity
A

2

249

I was working on fragments and came across two things Activity and FragmentActivity which are used several times. I want to know that is there any difference between these two, because when I changed Activity with FragmentActivity, it had no effect on the app.

Allnight answered 7/5, 2012 at 7:2 Comment(0)
P
339

A FragmentActivity is a subclass of Activity that was built for the Android Support Package.

The FragmentActivity class adds a couple new methods to ensure compatibility with older versions of Android, but other than that, there really isn't much of a difference between the two. Just make sure you change all calls to getLoaderManager() and getFragmentManager() to getSupportLoaderManager() and getSupportFragmentManager() respectively.

Porter answered 7/5, 2012 at 7:6 Comment(8)
Hey I didn't change the calls to getSupportLoaderManager() and getSupportFragmentManager()..but still it is working fine.Allnight
That's what makes it so dangerous :P. FragmentActivity inherits the getLoaderManager and getFragmentManager methods from Activity and as a result the compiler won't complain. Chances are you are importing the incorrect LoaderManager and FragmentManager classes too. Make sure you are importing these classes from the support package (android.support.v4.app), not the Android SDK (android.app).Porter
Can we say that if we want to use fragments for android 2.x version we need to use FragmentActivity nad for version that support fragments we need to use Activity .Allnight
I think what you are saying is correct. But just to be 100% clear... use Activity if you are using android.app.Fragment; use FragmentActivity if you are using android.support.v4.app.Fragment. Never attach a android.support.v4.app.Fragment to a android.app.Activity, as this will cause an exception to be thrown.Porter
Can you suggest where could i find a good tutorial for fragments.Allnight
First try this tutorial (how to use Fragments in an application). Then, continue on to this tutorial (how to make use of the Fragments from the support package). The documentation on the developers site is worth reading as well.Porter
@AlexLockwood I am importing the correct classes i.e. android.support.v4.app.ListFragment and android.support.v4.app.FragmentActivity, but still getting the error at getFragmentManager(). Why doesn't it inherit getFragmentManager() from the Activity because FragmentActivity extends ActivityNonconformity
Maybe it is not a compilation error and it is just a lint analysis error. Either way, you should be using getSupportFragmentManager() in your FragmentActivity instead.Porter
B
8

FragmentActivity is part of the support library, while Activity is the framework's default class. They are functionally equivalent.

You should always use FragmentActivity and android.support.v4.app.Fragment instead of the platform default Activity and android.app.Fragment classes. Using the platform defaults mean that you are relying on whatever implementation of fragments is used in the device you are running on. These are often multiple years old, and contain bugs that have since been fixed in the support library.

Benedictine answered 1/10, 2017 at 8:23 Comment(1)
Note: minSdkVersion of support library is 14 since version 26.x.x.Derm

© 2022 - 2024 — McMap. All rights reserved.