Разница между расширением 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

Другие вопросы по тегам