扩展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来使用它。
ActionBarActivity
或SupportActionBarActivity
具有不在一般Activity
其他方法和属性。 例如用于添加选项卡的方法存在于ActionBarActivity
而不是在一般的Activity
。
主要的区别是你没有得到一个genericsActivity
的ActionBar
。
ActionBarActivity只是有更多的支持库和更好地使用从API 11可用的新主题。
“在其最基本的forms中,操作栏显示了活动的标题和左侧的应用程序图标,即使在这种简单的forms中,操作栏对于所有活动来说都是有用的,以告知用户它们在哪里并保持一致身份为您的应用程序“。
你正在使用Android支持库当你来到Actionbaractivity。 所以支持库的使用是您的应用程序可以支持最大数量的设备。 支持库为您的应用程序提供了向后兼容的function。 Actionbaractivity给你像Actionbardrawer切换等多重function。有更多的支持库可用。 看到这个链接..并分享给你的朋友… https://developer.android.com/tools/support-library/index.html