为什么Android中的MainActivity会在不同的时间扩展不同的活动类?

为什么Android中的MainActivity会在不同的时间扩展不同的活动类?,android,Android,你能帮我回答这个问题吗 创建新项目时,我看到MainActivity扩展了Activity类或AppCompatActivity。为什么会发生这种情况?每次更改android项目默认设置的原因是什么?MainActivity还可以扩展哪些类?非常感谢您的帮助。Activity支持Android 3.0(API级别11)中引入的系统ActionBar AppCompatActivity具有与支持库中的ActionBar配合使用的界面,可与API级别7配合使用。如果您想支持ActionBar等一些功

你能帮我回答这个问题吗


创建新项目时,我看到MainActivity扩展了Activity类或AppCompatActivity。为什么会发生这种情况?每次更改android项目默认设置的原因是什么?MainActivity还可以扩展哪些类?非常感谢您的帮助。

Activity
支持Android 3.0(API级别11)中引入的系统ActionBar


AppCompatActivity
具有与支持库中的ActionBar配合使用的界面,可与API级别7配合使用。

如果您想支持ActionBar等一些功能,请降低android的API级别,因此请使用AppcompateActivity。例如,如果您使用Activity类扩展活动,则不能在api级别7中使用actionbar,因为actionbar特性是在api级别11中添加的

AppCompatActivity provide backward compatibility for new features
我看到MainActivity扩展了Activity类或AppActivity



这取决于您在项目中使用什么类型的活动。当您创建新项目时,它要求
活动
类型。如
FragmentActivity
等。

AppCompatActivity扩展了FragmentActivity,后者扩展了Activity。这被称为Polyfill(在Web开发中)以支持旧版本的Android使用新功能(如材料设计)。工具栏也通过使用支持库Android.support.v7.widget.Toolbar与AppcompatActivity一起使用。那么,这是否意味着我们应该始终使用AppcompatActivity?那么,拥有其他可以扩展的活动类意味着什么呢?@Marat我总是使用它,即使我的目标是3.0以上。为什么?我经常使用ViewPager,它迫使我使用支持库中的片段,然后我必须从AppCompatActivity调用getSupportedFragmentManger。否,这取决于您希望在activity中使用的功能或应用程序支持的API级别,例如,如果您不想在API级别7(menifest中的最低API级别)中使用actionbar然后使用AppCompativeActivity。如果最小api级别为11,则使用活动类。