Activity和FragmentActivity之间的区别


Answers:


316

A FragmentActivityActivityAndroid支持包构建的子类。

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


4
嘿,我没有更改对getSupportLoaderManager()和getSupportFragmentManager()的调用。但是仍然可以正常工作。
新秀

31
那就是让它如此危险的原因:P。FragmentActivity从继承getLoaderManagergetFragmentManager方法,Activity因此编译器不会抱怨。没准你正在导入的不正确LoaderManagerFragmentManager类了。确保从支持包(android.support.v4.app而非 Android SDK(android.app)导入这些类。
亚历克斯·洛克伍德

1
可以说,如果我们想为Android 2.x版本使用片段,我们需要为支持片段的版本使用FragmentActivity nad,我们需要使用Activity。
新秀

55
我认为你说的是​​正确的。但是只是要100%清除... Activity如果您正在使用android.app.Fragment; FragmentActivity如果您使用,请使用android.support.v4.app.Fragment。切勿将附加android.support.v4.app.Fragment到上android.app.Activity,因为这将引发异常。
亚历克斯·洛克伍德

13
首先尝试本教程(如何Fragments在应用程序中使用)。然后,继续学习本教程(如何使用Fragment支持包中的)。该文件对开发商的网站是值得一读为好。
亚历克斯·洛克伍德

4

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

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


1
注意:minSdkVersion自版本26.xx起,支持库为14
Eugen Pechanec '17
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.