Dans Android, quelle est la principale différence entre l'extension des activités Lifecycler Activity, Activity, ActionBarActivity et AppCompactActivity? Comment ces classes diffèrent-elles en termes d'utilisation?
ActionBarActivity
vous donne la fonctionnalité ActionBar
s à chaque niveau de l’API> = 7Activity
vous pouvez éviter d’ajouter d’autres projets/bibliothèques à votre projet, mais il vous manquera le ActionBar
aux niveaux d’API inférieurs à 11edit : Plus de détails:
ActionBarActivity
fait partie de bibliothèque de support . Les bibliothèques de support sont utilisées pour offrir de nouvelles fonctionnalités sur les anciennes plates-formes. Par exemple, le ActionBar
a été introduit dans l'API 11 et fait partie du Activity
par défaut (selon le thème choisi). En revanche, il n'y a pas de ActionBar
sur les anciennes plates-formes. La bibliothèque de support ajoute donc une classe enfant de Activity
(ActionBarActivity
) qui fournit les fonctionnalités de ActionBar
et
edit2 : Mise à jour d'avril 2015 - il semble que le ActionBarActivity
soit obsolète dans revision 22.1.0
de la bibliothèque de support. AppCompatActivity
devrait être utilisé à la place.
edit3: Mise à jour août 2017 - LifecycleActivity est un LifecycleOwner mais:
"Etant donné que les composants d’architecture sont en phase alpha, les classes Fragment et AppCompatActivity ne peuvent pas l’implémenter (car nous ne pouvons pas ajouter de dépendance d’un composant stable à une API instable). Jusqu'à ce que Lifecycle soit stable, les classes LifecycleActivity et LifecycleFragment sont fournies. Le projet Lifecycles est publié, les fragments de bibliothèque de support et les activités implémentent l'interface LifecycleOwner; LifecycleActivity et LifecycleFragment seront obsolètes à ce moment-là. "
(copié de la directive Composants d'architecture)
Si vous regardez attentivement, vous verrez ceci
public class ActionBarActivity extends FragmentActivity
implements ActionBarDrawerToggle.DelegateProvider TaskStackBuilder.SupportParentable
Ici vous pouvez lire sur FragmentActivity: http://developer.Android.com/reference/Android/support/v4/app/FragmentActivity.html
Et les différences entre Activity et FragmentActivity: Différence entre Activity et FragmentActivity
En outre, il existe de nouveaux thèmes pour le style ActionBar ... https://developer.Android.com/training/basics/actionbar/styling.html
La barre d’action est introduite dans le niveau d’API 11. com.Android.support:appcompat-v7:+ est une bibliothèque de support qui vous permet d’avoir un ActionBar dans votre application pour les appareils fonctionnant sur Android 3.0 ou inférieur). Ainsi, si vous avez besoin d’une barre d’action inférieure au niveau 11 de l’API, votre activité doit étendre ActionBarActivity.
Si vous ciblez les API de niveau 11 ou supérieur, vous n'avez pas besoin d'étendre ActionBarActivity et de faire référence à AppCompat. Vous pouvez simplement étendre l'activité et vous aurez actionabr par défaut.
Le projet par défaut d'Android Studio l'inclut automatiquement dans les dépendances et étend ActionbarActivity à la place de Activity afin de l'utiliser.
Le ActionBarActivity
ou le SupportActionBarActivity
ont des méthodes et des propriétés supplémentaires qui ne sont pas dans un Activity
générique. Par exemple, des méthodes pour ajouter des tabulations sont présentes dans le ActionBarActivity
et non dans un Activity
générique.
La principale différence étant que vous n'obtenez pas de ActionBar
sur un générique Activity
.
Vous utilisez la bibliothèque de support Android). Lorsque vous accédez à Actionbaractivity., Les utilisations de la bibliothèque de support constituent votre application pouvant être suport pour un nombre maximal de périphériques. La bibliothèque de support donne à votre application le pouvoir de Compatibilité ascendante. Actionbaractivity vous donne la fonctionnalité multiple comme Actionbardrawer bascule, etc., il existe plusieurs bibliothèques de support disponibles. Voir ce lien .. et partager avec vos amis ... https://developer.Android.com/tools /support-library/index.html
ActionBarActivity a juste plus de bibliothèques de support et une meilleure utilisation des nouveaux thèmes disponibles depuis api 11.
"Dans sa forme la plus élémentaire, la barre d'action affiche le titre de l'activité et l'icône de l'application sur la gauche. Même sous cette forme simple, la barre d'action est utile pour toutes les activités afin d'informer les utilisateurs de l'endroit où elles se trouvent et de maintenir une cohérence. identité pour votre application ".