以 min API 14 (ICS) 为目标时,最好使用 FragmentActivity(或 ActionBarActivity)或系统 Activity?

Posted

技术标签:

【中文标题】以 min API 14 (ICS) 为目标时,最好使用 FragmentActivity(或 ActionBarActivity)或系统 Activity?【英文标题】:Better to use FragmentActivity (or ActionBarActivity) or system Activity when targeting min API 14 (ICS)? 【发布时间】:2014-02-26 04:13:21 【问题描述】:

我正在使我的应用程序的最低 android 版本为 4.0(ICS,API 级别 14)。

首先我猜想我可以摆脱使用FragmentActivity作为活动的基类,但是系统框架上似乎没有像FragmentStatePagerAdapter这样的一些支持库类,它需要支持@ 987654323@而不是系统Fragment

所以我想知道我是否应该让我的活动继承自系统Activity,还是继续使用FragmentActivity(或使用appcompat 库时ActionBarActivity)?

【问题讨论】:

【参考方案1】:

部分支持库类如 FragmentStatePagerAdapter 在系统框架上不可用,需要支持 Fragment 而不是系统 Fragment。

这是不正确的。 FragmentPagerAdapterFragmentStatePagerAdapter 有两个版本。一组 (v4) 使用反向端口,另一组 (v13) 使用原生 API Level 11 版本的片段。

我想知道我是否应该让我的活动继承自系统活动

是的,除非您需要嵌套片段。这些直到 API 级别 17 才出现。如果您需要该功能,则需要使用反向端口,直到您的 android:minSdkVersion 达到 17 或更高。

【讨论】:

谢谢。这真的很有帮助。我以为 v4 和 v13 都使用了支持片段,我没有意识到。也感谢有关子片段的回答=)【参考方案2】:

如果您的最低 api 级别为 14,您可以扩展 Activity。您使用 API 级别 11 以下支持库中的Fragment,在这种情况下,您需要扩展FragmentActivity

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

如果您希望操作栏低于 11,则需要扩展 ActionBarActivity

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

注意:

 ↳  android.app.Activity
                   ↳    android.support.v4.app.FragmentActivity
                       ↳    android.support.v7.app.ActionBarActivity

【讨论】:

以上是关于以 min API 14 (ICS) 为目标时,最好使用 FragmentActivity(或 ActionBarActivity)或系统 Activity?的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式从 icloud 获取 ics 文件?

Android,调用 API 14 方法,但应与 API 4 保持兼容

Call requires api level 16 (current min is 14): 异常解决

ICS Android以编程方式启用gps?

将应用的目标 API 级别更改为至少 26

带有文本和日历的多部分电子邮件:Outlook 无法识别 ics