"Java class extends" "AppcompatActivity" vs "Activity" vs "ActionBar" 在 Android 中的区别?

Difference between "Java class extends" "AppcompatActivity" vs "Activity" vs "ActionBar" in Android?

Android - 我要开发一个 API 介于 API 15 和最新的 API.
之间的应用程序 但我有一个关于“Java class extends”的问题。

有什么区别:

  1. Javaclassextends AppcompatActivity,以及

  2. Javaclassextends Activity,以及

  3. Java class extends ActionBarActivity.

如果有人给出明确的定义,我一定会在我的问题中勾选接受的答案。

扩展 AppcompatActivity 很好。AppcompatActivity 有助于我们在低 api 中使用新功能。

  • 扩展 ActionBarActivity 为您提供每个 API 级别的 ActionBar 功能 >= 7
  • 通过扩展 Activity,您可以避免向您的项目添加额外的 projects/libraries,但您将缺少 api 级别低于 11
  • ActionBar

ActionBarActivitySupport Library 的一部分。支持库用于在旧平台上提供更新的功能。例如 ActionBar 是在 API 11 中引入的,默认情况下是 Activity 的一部分(实际取决于主题)。相比之下,旧平台上没有 ActionBar。因此,支持库添加了 Activity (ActionBarActivity) 的子 class,它提供 ActionBar 的功能和 UI

  • ActionBarActivity 的新弃用版本(扩展 AppCompatActivity class 的版本)可以安全地向后兼容 class。它的弃用只是提示您直接使用 new AppCompatActivity 代替。 AppCompatActivity 是一个新的、更通用的实现,它在内部使用 AppCompatDelegate class。

例如,您从外部库继承了一个 activity,而该外部库又不继承自 AppCompatActivity,但您希望此 activity 具有着色 材料小部件(浏览量)。要做到这一点,您需要在 activity、override 方法中创建 AppCompatDelegate 的实例 activity,例如 addContentView()setContentView() 等.(有关方法的完整列表,请参阅 AppCompatDelegate javadoc),并在那些被覆盖的方法中将调用转发给内部 AppCompatDelegate 实例。 AppCompatDelegate 将完成剩下的工作,您的 "old-fashion" activity 将是 "materialized".

来源:this and .