Activity应该是每一个Android开发者第一个遇到的类吧,后来又看到了FragmentActivity,再后来又碰到了AppCompatActivity和ActionBarActivity,也许我们在开发者中会在不同的场景中使用以上不同的Activity类,但是要让我们清楚的说出它们的联系和区别,可能都会被这个问题懵一下,现在我们就来把他们的关系理清楚.
这几个类有一个基本的继承关系
Activity <- FragmentActivity <- AppCompatActivity <- ActionBarActivity
需要注意的是ActionBarActivity
已经废弃了. 从上面的这个继承关系也大概可以了解这几个类的基本关系,Activity
是以上这各类的基类,所有的Activity
子类都直接或间接的继承自Activity
类.
FragmentActivity
是在support-v4和support-v13库中用来向后兼容Fragment
的.AppCompatActivity
是在appcompat-v7库, 原则上它提供了对action bar的向后兼容. 在考虑什么场景具体使用哪个类时可以参考一下三个原则:
-
如果你想向后兼容Material Design的外观,继承
AppCompatActivity
. -
如果不考虑Material Design,但是你想使用嵌套的
Fragment
, 继承FragmentActivity
. -
如果没有以上需求,则继承
Activity
.
因为AppCompatActivity
继承自FragmentActivity
,如果你需要FragmentActivity
的特性,原则上都可以使用AppCompatActivity
.