J'ai rencontré tellement de problèmes avec la disposition de plusieurs activités que je le déconseille fortement, à moins qu'il n'y ait une bonne raison de le choisir.
Inconvénient de plusieurs activités
En utilisant plusieurs activités, il est très difficile de refactoriser le code pour renvoyer des données d'activité.
Si vous appelez une «sous-activité», l'activité principale peut être supprimée. Mais vous ne rencontrez jamais cela lors du débogage sur un appareil décent, vous devez donc gérer toujours l'enregistrement de l'état et la récupération correcte de l'état. C'est une douleur. Imaginez appeler une méthode sur une bibliothèque (c.-à-d. Une autre activité), et vous devriez vous assurer que lorsque cette méthode retourne, votre application doit être capable de recréer complètement son état avec tous les champs de tous les objets de la VM (c.-à-d. Activité. restoreIntance). C'est fou.
De même, à l'inverse, lorsque vous ouvrez une sous-activité, la machine virtuelle peut avoir été tuée depuis que la sous-activité a été créée pour la première fois, par exemple lorsque l'application est minimisée alors que la sous-activité est affichée.
C'est tellement plus propre de n'avoir qu'un seul endroit pour stocker l'état d'application pertinent, et dans mon cas, le plus souvent, si la VM est tuée, je veux ramener l'utilisateur à l'écran principal et les laisser faire leurs affaires à nouveau, car je ne le fais pas. ne passez pas 30 à 50 heures à coder la fonctionnalité de sauvegarde / reprise que 0,1% des utilisateurs connaîtront.
Alternative
Fragments ou gérez simplement vos vues d'activité vous-même. La gestion manuelle des vues nécessite de coder une alternative de changement de vue aux activités / fragments avec des transitions si vous le souhaitez.
Et non, cela ne signifie pas une méga-activité, comme suggéré dans la réponse acceptée, d'une autre manière que sa seule méga-application. Cela nécessite juste un peu plus de conception de la base de code en éléments appropriés, car il y a un peu plus de travail de gestion des vues, bien que beaucoup moins de travail de gestion de l'état d'activité et d'autres bizarreries.
Peut-être pertinent: Reddit: C'est officiel: Google recommande officiellement une architecture d'application à activité unique