在Android中,扩展Lifecycler Activity,Activity,ActionBarActivity和AppCompactActivity之间的主要区别是什么?这些类在用法上有何不同?
在Android中,扩展Lifecycler Activity,Activity,ActionBarActivity和AppCompactActivity之间的主要区别是什么?这些类在用法上有何不同?
Answers:
ActionBarActivity
为您提供ActionBar
在每个API级别> = 7的s功能Activity
您可以避免向项目中添加其他项目/库,但是您会缺少ActionBar
11以下的api级别编辑:更多详细信息:
ActionBarActivity
是支持库的一部分。支持库用于在旧平台上提供新功能。例如ActionBar
,API是在API 11中引入的Activity
,默认情况下是的一部分(实际取决于主题)。相反ActionBar
,在较旧的平台上则没有。因此,支持库添加了Activity
(ActionBarActivity
)的子类,该子类提供ActionBar
的功能和用户界面
edit2:2015年4月更新-支持库似乎ActionBarActivity
已弃用revision 22.1.0
。AppCompatActivity
应该改为使用。
EDIT3:更新2017年8月- LifecycleActivity是LifecycleOwner但是:
“由于架构组件处于alpha阶段,所以Fragment和AppCompatActivity类无法实现它(因为我们无法将稳定组件中的依赖项添加到不稳定的API中。)在生命周期稳定之前,为了方便起见,提供了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之间的区别
此外,还有一些用于设置actionBar样式的新主题... https://developer.android.com/training/basics/actionbar/styling.html
Actionbar是在API级别11中引入的。com.android.support:appcompat-v7:+是一个支持库,通过该库,您可以在应用程序中为在Android 3.0或更低版本上运行的设备添加ActionBar。因此,如果您需要低于api级别11的操作栏,则您的Activity需要扩展ActionBarActivity。
如果您的目标是api级别11和更高级别,则不需要扩展ActionBarActivity并引用AppCompat。您可以简单地扩展Activity,并且默认情况下将具有actionabr。
Android Studio默认项目会自动在依赖项中包含它,并扩展ActionbarActivity而不是Activity以便使用它。
该ActionBarActivity
或SupportActionBarActivity
有额外的方法和不在一个通用的特性Activity
。例如添加标签的方法存在于ActionBarActivity
而不是通用Activity
。
主要的区别是您没有ActionBar
通用的Activity
。
ActionBarActivity只是拥有更多的支持库和对api 11中可用的较新主题的更好利用。
“操作栏以最基本的形式显示了活动的标题和左侧的应用程序图标。即使采用这种简单的形式,操作栏也可用于所有活动,以告知用户其所在位置并保持一致您应用的标识。”
您正在使用Android支持库进入Actionbaractivity。因此支持库的用途是您的应用程序可以支持最大数量的设备。支持库为您的应用程序提供了向后兼容性的强大功能。Actionbaractivity为您提供了多种功能,例如Actionbardrawer切换等。还有更多可用的支持库。看到此链接..并分享给您的朋友... https://developer.android.com/tools/support-library/index.html