【发布时间】:2012-05-15 17:16:33
【问题描述】:
我在处理片段时遇到了两个被多次使用的东西Activity 和FragmentActivity。我想知道这两者之间有什么区别,因为当我将Activity 更改为FragmentActivity 时,它对应用程序没有影响。
【问题讨论】:
标签: android android-fragments android-support-library android-fragmentactivity
我在处理片段时遇到了两个被多次使用的东西Activity 和FragmentActivity。我想知道这两者之间有什么区别,因为当我将Activity 更改为FragmentActivity 时,它对应用程序没有影响。
【问题讨论】:
标签: android android-fragments android-support-library android-fragmentactivity
FragmentActivity 是为Android Support Package 构建的Activity 的子类。
FragmentActivity 类添加了几个新方法以确保与旧版本的 Android 兼容,但除此之外,两者之间并没有太大区别。只需确保将所有对getLoaderManager() 和getFragmentManager() 的调用分别更改为getSupportLoaderManager() 和getSupportFragmentManager()。
【讨论】:
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(如何使用支持包中的Fragments)。开发者网站上的documentation 也值得一读。
FragmentActivity 是support library 的一部分,而Activity 是框架的默认类。它们在功能上是等效的。
您应该始终使用FragmentActivity 和android.support.v4.app.Fragment 而不是平台默认的Activity 和android.app.Fragment 类。使用平台默认值意味着您依赖于您正在运行的设备中使用的任何片段实现。这些通常已有多年历史,并且包含已在支持库中修复的错误。
【讨论】:
minSdkVersion自26.x.x版本起为14。