Better to use FragmentActivity (or ActionBarActivity) or system Activity when targeting min API 14 (ICS)?
Asked Answered
I

2

6

I'm making my app to have minimum Android version of 4.0 (ICS, API level 14).

First I guessed that I can get rid of using FragmentActivity as the base class for the activities, but it seems that some support library classes like FragmentStatePagerAdapter is not available on the system framework, and it needs the support Fragment instead of the system Fragment.

So I wonder if I should make my activities inherit from the system Activity, or stay using FragmentActivity (or ActionBarActivity when using appcompat library)?

Inveigh answered 2/2, 2014 at 18:24 Comment(0)
C
12

some support library classes like FragmentStatePagerAdapter is not available on the system framework, and it needs the support Fragment instead of the system Fragment.

That is incorrect. There are two versions of FragmentPagerAdapter and FragmentStatePagerAdapter. One set (v4) uses the backport, the other (v13) uses the native API Level 11 version of fragments.

I wonder if I should make my activities inherit from the system Activity

Yes, unless you need nested fragments. Those did not show up until API Level 17. If you need that capability, you will need to use the backport, until such time as your android:minSdkVersion is 17 or higher.

Ca answered 2/2, 2014 at 18:42 Comment(1)
Thanks. This is really helpful. I thought the v4 and v13 both used support fragment, I didn't realize it. And thanks for the answer about child fragments too =)Echikson
C
11

If your min api level is 14 you can extend Activity. You use Fragment from support library below api level 11 in which case you need to extend FragmentActivity.

http://developer.android.com/reference/android/support/v4/app/FragmentActivity.html

If you want action bar below 11 then you need to extend ActionBarActivity

http://developer.android.com/guide/topics/ui/actionbar.html

Note:

 ↳  android.app.Activity
                   ↳    android.support.v4.app.FragmentActivity
                       ↳    android.support.v7.app.ActionBarActivity
Chancre answered 2/2, 2014 at 18:28 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.