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.
- la extensión de
ActionBarActivity
leActionBar
la funcionalidad deActionBar
en cada nivel de API> = 7 - Al ampliar la
Activity
, puede evitar agregar proyectos / bibliotecas adicionales a su proyecto, pero le faltará laActionBar
deActionBar
en los niveles de la API por debajo de 11.
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)