La gestion de la navigation entre les activités est essentielle dans le développement d’applications Android. Lorsqu’un utilisateur souhaite quitter une activité pour retourner à une autre, il existe plusieurs méthodes pour y parvenir. Cet article explorera les différentes façons de revenir à une activité précédente sur la plateforme Android.
Comment revenir à une activité précédente sur Android ?
Lorsque vous souhaitez revenir à l’activité précédente, l’une des méthodes les plus simples consiste à appeler la méthode finish()
à partir de l’activité actuelle. Cette instruction termine l’activité où elle est appelée et revient à l’activité précédente dans la pile des activités. Toutefois, il est important de noter que tous les codes suivants l’appel de finish()
continueront d’être exécutés, donc il est judicieux de placer cet appel à la fin de la méthode pour éviter des comportements indésirables.
Configurer l’historique des activités
Il est possible de modifier le comportement par défaut d’une activité en utilisant l’attribut android:noHistory
dans le fichier AndroidManifest.xml
. En le réglant sur true
, vous indiquez que l’activité ne doit pas être conservée dans l’historique lorsque l’utilisateur y accède, entraînant sa fermeture automatique lors de l’appui sur le bouton de retour. Ce paramètre peut être particulièrement utile pour les écrans temporaires ou les paramètres où vous ne voulez pas que l’utilisateur revienne en arrière.
Finir une activité avec des résultats
Pour fermer une activité tout en retournant des données à l’activité précédente, vous devez suivre une série d’étapes. Tout d’abord, créez une intention (Intent) qui contiendra les résultats que vous souhaitez transmettre. Ensuite, remplissez cette intention avec les données à l’aide de la méthode putExtra()
. Vous devez ensuite appeler setResult()
sur votre activité avec l’intention créée avant d’appeler finish()
. Cela permet de signaler à l’activité précédente qu’elle peut récupérer des résultats avant que vous ne fermiez l’activité actuelle.
Méthodes pour vérifier si une activité est terminée
Pour déterminer si une activité est en train de se terminer, vous pouvez utiliser certaines méthodes de cycle de vie. onDestroy()
est appelé lors de la destruction de l’activité, tandis que isFinishing()
renvoie un booléen indiquant si l’activité est sur le point de se fermer. onStop()
et onPause()
fournissent également des informations utiles sur l’état de l’activité, permettant de gérer les transitions correctement.
Création d’une nouvelle activité et navigation
Pour naviguer vers une nouvelle activité, commencez par la créer dans votre projet Android. Cela se fait en cliquant avec le bouton droit sur le dossier de l’application, en sélectionnant Nouveau > Activité > Activité vide
et en fournissant un nom pour cette activité. Une fois créée, vous pouvez la lancer à l’aide d’une intention, ce qui vous amène à la nouvelle interface de votre application. Pour revenir ensuite à l’activité précédente, il suffira d’utiliser les méthodes précédemment décrites.
FAQ
1. Quelle est la différence entre finish() et finishAffinity() ?
La méthode finish()
termine l’activité courante et la retire de la pile, tandis que finishAffinity()
ferme toutes les activités associées à la tâche dans laquelle se trouve l’activité courante, permettant ainsi une fermeture plus globale de l’application.
2. Que se passe-t-il si j’appelle finish() dans onCreate() ?
Si vous appelez finish()
à l’intérieur de onCreate()
, l’activité sera immédiatement fermée avant même que son interface ne soit affichée, ce qui peut entraîner un comportement inattendu.
3. Puis-je fermer une activité avec un bouton clavier ?
Oui, vous pouvez gérer l’événement d’un bouton retour en surchargeant la méthode onBackPressed()
pour y inclure des actions personnalisées, comme avertir l’utilisateur ou fermer l’application.