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

Ume*_*ani 69 android android-fragments android-activity android-actionbar

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

sta*_*an0 82

编辑:更多细节:

ActionBarActivity支持库的一部分.支持库用于在旧平台上提供更新的功能.例如,它ActionBar是在API 11中引入的,并且是Activity默认的一部分(实际上取决于主题).相比之下ActionBar,较旧的平台上没有.因此,支持库添加了一个子类Activity(ActionBarActivity),它提供了ActionBar函数和ui

edit2:2015年4月更新 - 看起来支持库中ActionBarActivity已弃用revision 22.1.0.AppCompatActivity应该用来代替.

edit3: 2017年8月更新 - LifecycleActivity是一个LifecycleOwner但是:

"由于架构组件处于alpha阶段,Fragment和AppCompatActivity类无法实现它(因为我们无法将稳定组件的依赖项添加到不稳定的API中).在生命周期稳定之前,LifecycleActivity和LifecycleFragment类是为了方便而提供的. Lifecycles项目发布,支持库片段和活动将实现LifecycleOwner接口; LifecycleActivity和LifecycleFragment将在那时被弃用."

(从架构组件指南中复制)

  • 竖起大拇指回答这个问题.当然,有足够的文档可以阅读,直到我们的日子结束,我们有时需要的是对事物的简单定义. (4认同)
  • "你将在低于7的api级别上缺少ActionBar (2认同)

van*_*e25 7

如果仔细观察,你会看到这一点

public class ActionBarActivity extends FragmentActivity
implements ActionBarDrawerToggle.DelegateProvider TaskStackBuilder.SupportParentable
Run Code Online (Sandbox Code Playgroud)

在这里,您可以阅读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.

如果您的目标是api级别11及以上,那么您不需要扩展ActionBarActivity并引用AppCompat.您可以简单地扩展Activity,默认情况下您将拥有actionabr.

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