ActionBarActivity
可以在API等级大于或等于7的每个级别上获得ActionBar
的功能。Activity
,您可以避免向项目添加其他项目/库,但是在API级别低于11的级别上,您将缺少ActionBar
。编辑:更多细节:
ActionBarActivity
是 Support Library 的一部分。支持库用于在旧平台上提供新功能。例如,ActionBar
在 API 11 中引入,并且默认情况下是 Activity
的一部分(实际上取决于主题)。相比之下,在旧平台上没有 ActionBar
。因此,支持库添加了一个 Activity
的子类(ActionBarActivity
),它提供了 ActionBar
的功能和用户界面。
编辑2:2015年4月更新 - 看起来在支持库的 revision 22.1.0
中已经弃用了 ActionBarActivity
。应改用 AppCompatActivity
。
(摘自架构组件指南)“由于架构组件处于alpha阶段,Fragment和AppCompatActivity类不能实现它(因为我们不能从稳定的组件向不稳定的API添加依赖)。在Lifecycle稳定之前,提供了LifecycleActivity和LifecycleFragment类以方便使用。Lifecycles项目发布后,支持库片段和活动将实现LifecycleOwner接口;此时LifecycleActivity和LifecycleFragment将被弃用。”
如果您仔细观察,您将会看到这个。
public class ActionBarActivity extends FragmentActivity
implements ActionBarDrawerToggle.DelegateProvider TaskStackBuilder.SupportParentable
这里您可以了解FragmentActivity: http://developer.android.com/reference/android/support/v4/app/FragmentActivity.html
Activity和FragmentActivity之间的区别: Activity和FragmentActivity之间的区别
此外,有一些新的主题可用于为操作栏设置样式... https://developer.android.com/training/basics/actionbar/styling.html
Actionbar是在API级别11中引入的。com.android.support:appcompat-v7:+是一个支持库,允许您在运行Android 3.0或更低版本的设备上在应用程序中拥有ActionBar。因此,如果您需要处理api级别11以下的actionbar,则您的Activity需要扩展ActionBarActivity。
如果您的目标api级别为11及以上,则无需扩展ActionBarActivity并引用AppCompat。您只需扩展Activity即可默认拥有actionbar。
Android Studio默认项目会自动将其包含在依赖项中,并扩展ActionbarActivity以使用它。
ActionBarActivity
或 SupportActionBarActivity
拥有额外的方法和属性,这些在普通的 Activity
中没有。例如,在 ActionBarActivity
中有添加标签的方法,而在普通的 Activity
中则没有。
主要的区别在于普通的 Activity
上没有 ActionBar
。
您正在使用Android支持库。当您使用Actionbaractivity时,支持库的使用使您的应用程序能够支持尽可能多的设备。支持库为您的应用程序提供了向后兼容性的功能。Actionbaractivity为您提供了多个功能,如Actionbardrawer toggle等。还有更多的支持库可用。请查看此链接...并分享给您的朋友们...https://developer.android.com/tools/support-library/index.html
ActionBarActivity只是拥有更多的支持库和更好的使用api 11中可用的新主题。
“在其最基本的形式中,操作栏显示活动的标题和应用程序图标在左侧。即使在这种简单的形式中,操作栏对于所有活动都很有用,可以向用户提供关于他们所在位置的信息,并为您的应用程序保持一致的身份。”