studio implement how fragments example custom create bar activity android android-fragments android-activity android-actionbar

android - implement - ¿Diferencia entre extender LifecycleActivity, Activity, ActionbarActivity y AppCompactActivity?



how to implement fragments in android studio (5)

En Android, ¿cuál es la principal diferencia entre extender Lifecycler Activity, Activity, ActionBarActivity y AppCompactActivity? ¿Cómo se diferencian estas clases unas de otras en términos de uso?


ActionBarActivity solo tiene más bibliotecas de soporte y un mejor uso de los temas más nuevos disponibles desde api 11.

"En su forma más básica, la barra de acciones muestra el título de la actividad y el icono de la aplicación a la izquierda. Incluso en esta forma simple, la barra de acciones es útil para todas las actividades para informar a los usuarios dónde están y para mantener un identidad para su aplicación ".


Está utilizando la biblioteca de soporte de Android Cuando llega a Actionbaractivity. por lo que los usos de la biblioteca de soporte es su aplicación pueden ser compatibles con la cantidad máxima de dispositivos. La biblioteca de soporte brinda a su aplicación el poder de compatibilidad hacia atrás. Actionbaractivity le brinda la característica múltiple como Actionbardrawer toggle, etc. hay más bibliotecas de soporte disponibles. mira este enlace ... y comparte con tus amigos ... https://developer.android.com/tools/support-library/index.html


Si miras detenidamente, verás esto

public class ActionBarActivity extends FragmentActivity implements ActionBarDrawerToggle.DelegateProvider TaskStackBuilder.SupportParentable

Aquí puede leer sobre FragmentActivity: http://developer.android.com/reference/android/support/v4/app/FragmentActivity.html

Y las diferencias entre Activity y FragmentActivity: diferencia entre actividad y FragmentActivity

Además, hay algunos temas nuevos para diseñar actionBar ... https://developer.android.com/training/basics/actionbar/styling.html

La barra de acciones se introdujo en el nivel 11 de API. Com.android.support:appcompat-v7:+ es una biblioteca de soporte que le permite tener una barra de acciones en su aplicación para dispositivos que se ejecutan en Android 3.0 o inferior. Por lo tanto, si necesita la barra de acciones debajo del nivel 11 de la API, su actividad necesita extender ActionBarActivity.

Si apuntas al nivel 11 de api y superior, entonces no necesitas extender ActionBarActivity y hacer referencia a AppCompat. Simplemente puede extender la Actividad y tendrá actionabr por defecto.

El proyecto predeterminado de Android Studio lo incluye automáticamente en dependencias y amplía ActionbarActivity en lugar de Activity para usarlo.


ActionBarActivity o SupportActionBarActivity tienen métodos y propiedades adicionales que no están en una Activity genérica. por ejemplo, los métodos para agregar pestañas están presentes en ActionBarActivity y no en una Activity genérica.

La principal diferencia es que no obtienes una ActionBar de ActionBar en una Activity genérica.


editar : más detalles:

ActionBarActivity es parte de la Biblioteca de soporte . Las bibliotecas de soporte se utilizan para entregar funciones más nuevas en plataformas más antiguas. Por ejemplo, ActionBar se introdujo en API 11 y forma parte de la Activity de forma predeterminada (dependiendo del tema en realidad). Por el contrario, no hay ActionBar en las plataformas anteriores. Entonces, la biblioteca de soporte agrega una clase secundaria de Activity ( ActionBarActivity ) que proporciona la funcionalidad y la interfaz de ActionBar de ActionBar .

edit2 : Actualización de abril de 2015: parece que ActionBarActivity está en desuso en la revision 22.1.0 de la Biblioteca de soporte. AppCompatActivity debe utilizar en su lugar.

edit3: Actualización agosto de 2017 - LifecycleActivity es un LifecycleOwner pero:

"Dado que los componentes de arquitectura están en fase alfa, las clases Fragment y AppCompatActivity no pueden implementarlo (porque no podemos agregar una dependencia de un componente estable a una API inestable). Hasta que Lifecycle sea estable, se proporcionan clases LifecycleActivity y LifecycleFragment para su comodidad. Se lanza el proyecto Lifecycles, los fragmentos de la biblioteca de soporte y las actividades implementarán la interfaz LifecycleOwner; LifecycleActivity y LifecycleFragment quedarán obsoletos en ese momento ".

(copiado de la guía de Componentes de Arquitectura)