扩展LifecycleActivity,Activity,ActionbarActivity和AppCompactActivity之间的区别?

在Android中,扩展Lifecycleler Activity,Activity,ActionBarActivity和AppCompactActivity的主要区别是什么? 这些类如何在使用方面有所不同?

  • 扩展ActionBarActivity为每个API级别> = 7的ActionBarActivity提供了function
  • 通过扩展Activity你可以避免增加额外的项目/库到你的项目,但是你将缺lessapi级别低于11的ActionBar

编辑 :更多细节:

ActionBarActivity是支持库的一部分。 支持库用于在旧版平台上提供更新的function。 例如, ActionBar是在API 11中引入的,并且是默认情况下的Activity的一部分(实际上取决于主题)。 相比之下,旧平台上没有ActionBar 。 所以支持库增加了一个Activity类( ActionBarActivity ),它提供了ActionBar的function和UI

edit2 :2015年4月更新 – 它看起来像ActionBarActivity在支持库的revision 22.1.0中已被弃用。 应该使用AppCompatActivity来代替。

edit3: 2017年8月更新 – LifecycleActivity是LifecycleOwner,但是:

“由于架构组件处于alpha阶段,因此Fragment和AppCompatActivity类无法实现它(因为我们无法将稳定组件的依赖项添加到不稳定的API中),直到生命周期稳定后,才提供LifecycleActivity和LifecycleFragment类。生命周期项目发布后,支持库碎片和活动将实现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之间的区别

此外,还有一些新的主题样式的actionBar … https://developer.android.com/training/basics/actionbar/styling.html

Actionbar是在API级别11中引入的。com.android.support:appcompat-v7:+是一个支持库,允许您在Android 3.0或更低版本上运行设备的应用程序中具有ActionBar。 所以,如果你需要在api level 11下面的actionbar,你的Activity需要扩展ActionBarActivity。

如果你的目标是11级以上,那么你不需要扩展ActionBarActivity并引用AppCompat。 你可以简单地扩展活动,你将默认有actionabr。

Android Studio默认项目自动将其包含在依赖项中,并且扩展了ActionbarActivity而不是Activity来使用它。

ActionBarActivitySupportActionBarActivity具有不在一般Activity其他方法和属性。 例如用于添加选项卡的方法存在于ActionBarActivity而不是在一般的Activity

主要的区别是你没有得到一个genericsActivityActionBar

ActionBarActivity只是有更多的支持库和更好地使用从API 11可用的新主题。

“在其最基本的forms中,操作栏显示了活动的标题和左侧的应用程序图标,即使在这种简单的forms中,操作栏对于所有活动来说都是有用的,以告知用户它们在哪里并保持一致身份为您的应用程序“。

你正在使用Android支持库当你来到Actionbaractivity。 所以支持库的使用是您的应用程序可以支持最大数量的设备。 支持库为您的应用程序提供了向后兼容的function。 Actionbaractivity给你像Actionbardrawer切换等多重function。有更多的支持库可用。 看到这个链接..并分享给你的朋友… https://developer.android.com/tools/support-library/index.html