Разница между расширением LifecycleActivity,Activity,ActionbarActivity и AppCompactActivity?
В Android в чем главное отличие расширения Lifecycler Activity, Activity,ActionBarActivity и AppCompactActivity? Как эти классы отличаются друг от друга с точки зрения использования?
5 ответов
- простирающийся
ActionBarActivity
дает вамActionBar
функциональность s на каждом уровне API>= 7 - расширяя
Activity
Вы можете избежать добавления дополнительных проектов / библиотек в ваш проект, но вам не хватитActionBar
на уровне API ниже 11
редактировать: Подробнее:
ActionBarActivity
является частью библиотеки поддержки. Библиотеки поддержки используются для предоставления новых функций на старых платформах. Например, ActionBar
был введен в API 11 и является частью Activity
по умолчанию (в зависимости от темы на самом деле). В отличие от этого нет ActionBar
на старых платформах. Таким образом, библиотека поддержки добавляет дочерний класс Activity
(ActionBarActivity
), который обеспечивает ActionBar
функциональность и пользовательский интерфейс
edit2: обновление апреля 2015 года - похоже, ActionBarActivity
устарела в revision 22.1.0
библиотеки поддержки. AppCompatActivity
следует использовать вместо
edit3: обновление от августа 2017 г. - LifecycleActivity является LifecycleOwner, но:
"Поскольку компоненты архитектуры находятся в стадии альфа, классы 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
Панель действий представлена на уровне API 11. com.android.support:appcompat-v7:+ - это библиотека поддержки, которая позволяет использовать ActionBar в вашем приложении для устройств, работающих на Android 3.0 или ниже. Итак, если вам нужна панель действий ниже уровня API 11, ваша активность должна расширять ActionBarActivity.
Если вы нацелены на уровень API 11 и выше, вам не нужно расширять ActionBarActivity и ссылочную AppCompat. Вы можете просто расширить Activity, и у вас будет actionabr по умолчанию.
Android Studio default project includes it automatically in dependencies and extends ActionbarActivity instead of Activity in order to use it.
ActionBarActivity
или SupportActionBarActivity
иметь дополнительные методы и свойства, которые не являются общими Activity
, например, методы для добавления вкладок присутствуют в ActionBarActivity
а не в общем Activity
,
Главное отличие в том, что вы не получаете ActionBar
на общем Activity
,
ActionBarActivity просто имеет больше библиотек поддержки и лучшее использование новых тем, доступных в API 11.
"В своей основной форме панель действий отображает заголовок для действия и значок приложения слева. Даже в этой простой форме панель действий полезна для всех действий, чтобы информировать пользователей о том, где они находятся, и поддерживать согласованное личность для вашего приложения."
Вы используете библиотеку поддержки Android, когда переходите на Actionbaractivity . Таким образом, использование библиотеки поддержки в вашем приложении может поддерживать максимальное количество устройств. Библиотека поддержки дает вашему приложению возможность обратной совместимости. Actionbaractivity предоставляет вам многократную функцию, такую как переключение Actionbardrawer и т. Д., Есть больше доступных библиотек поддержки. посмотрите эту ссылку.. и поделитесь с друзьями... https://developer.android.com/tools/support-library/index.html