Activity和FragmentActivity之间的区别

Roo*_*kie 225 android android-fragments android-fragmentactivity android-support-library

我正在处理碎片并遇到两件事情Activity,FragmentActivity并且已经使用了好几次.我想知道这两者之间有什么区别,因为当我改变ActivityFragmentActivity,它对应用程序没有任何影响.

Ale*_*ood 309

A FragmentActivityActivityAndroid支持包构建的子类.

FragmentActivity类增加了一些新的方法,以确保与旧版本的Android的兼容性,但除此之外,真的没有多少两者之间的差别.只要确保你改变所有调用getLoaderManager(),并getFragmentManager()getSupportLoaderManager()getSupportFragmentManager()分别.

  • 我想你说的是对的.但只是要100%清楚......如果你使用`android.app.Fragment`,请使用`Activity`; 如果你使用`android.support.v4.app.Fragment`,请使用`FragmentActivity`.永远不要将`android.support.v4.app.Fragment`附加到`android.app.Activity`,因为这会导致抛出异常. (54认同)
  • 这就是它如此危险的原因:P.`FragmentActivity`从`Activity`继承`getLoaderManager`和`getFragmentManager`方法,因此编译器不会抱怨.您可能正在导入不正确的`LoaderManager`和`FragmentManager`类.确保从支持包(`android.support.v4.app`),*而不是Android SDK(`android.app`)导入这些类. (30认同)
  • 首先尝试[**本教程**](http://mobile.tutsplus.com/tutorials/android/android-sdk_fragments/)(如何在应用程序中使用`Fragments`).然后,继续[**本教程**](http://mobile.tutsplus.com/tutorials/android/android-compatibility-working-with-fragments/)(如何利用`Fragment`s来自支持包).开发人员网站上的[**文档**](http://android-developers.blogspot.com/2011/02/android-30-fragments-api.html)也值得一读. (13认同)
  • 嘿我没有改变对getSupportLoaderManager()和getSupportFragmentManager()的调用..但它仍然正常工作. (4认同)

Sam*_*ter 7

FragmentActivity支持库的一部分,而Activity是框架的默认类。它们在功能上是等效的。

您应该始终使用FragmentActivityandandroid.support.v4.app.Fragment而不是平台默认值Activityandroid.app.Fragment类。使用平台默认值意味着您依赖于您正在运行的设备中使用的任何片段实现。这些通常已有多年历史,并且包含已在支持库中修复的错误。

  • 注意:支持库的`minSdkVersion`从26.xx版本开始为14 (2认同)