我在处理片段时遇到了两个被多次使用的东西 Activity
和 FragmentActivity
。我想知道这两者之间有什么区别,因为当我将 Activity
更改为 FragmentActivity
时,它对应用程序没有影响。
FragmentActivity
是为 Android Support Package 构建的 Activity
的子类。
FragmentActivity
类添加了几个新方法以确保与旧版本的 Android 兼容,但除此之外,两者之间并没有太大区别。只需确保将对 getLoaderManager()
和 getFragmentManager()
的所有调用分别更改为 getSupportLoaderManager()
和 getSupportFragmentManager()
。
FragmentActivity
是 support library 的一部分,而 Activity
是框架的默认类。它们在功能上是等效的。
您应该始终使用 FragmentActivity
和 android.support.v4.app.Fragment
而不是平台默认的 Activity
和 android.app.Fragment
类。使用平台默认值意味着您依赖于您正在运行的设备中使用的任何片段实现。这些通常已有多年历史,并且包含已在支持库中修复的错误。
minSdkVersion
为 14
FragmentActivity
从Activity
继承getLoaderManager
和getFragmentManager
方法,因此编译器不会抱怨。您也可能导入了不正确的LoaderManager
和FragmentManager
类。确保您从支持包 (android.support.v4.app
) 导入这些类,不是 Android SDK (android.app
)。android.app.Fragment
,请使用Activity
;如果您使用android.support.v4.app.Fragment
,请使用FragmentActivity
。切勿将android.support.v4.app.Fragment
附加到android.app.Activity
,因为这将导致引发异常。Fragments
)。然后,继续 this tutorial(如何使用支持包中的Fragment
)。开发者网站上的 documentation 也值得一读。