Voici ce que j'ai fait personnellement pour l'un de mes petits projets mobiles. Au lieu de créer une application séparée, sans écran Activity
où se trouve la condition et qui lance l'écran correspondant, je mets la condition dans une Activity
et a fait une dynamique setContentView()
comme dans :
if (!userIsLoggedIn) {
setContentView(R.layout.signup);
} else {
setContentView(R.layout.homescreen);
}
Deux remarques importantes à propos de cette approche :
1 : Au lieu d'écrire cela dans onCreate()
vous voulez mettre la prise de décision à l'intérieur onResume()
précisément parce que ce dernier est toujours appelé lorsque l'écran doit être affiché en avant. Vous pouvez voir cela dans l'application Android cycle de vie des activités . Ainsi, si, par exemple, l'utilisateur vient de télécharger mon application et la lance pour la première fois, comme aucun utilisateur n'est connecté, il sera dirigé vers la page d'inscription. Lorsqu'il aura terminé de s'inscrire et que, pour une raison quelconque, il appuiera sur la touche HOME
bouton (pas BACK
(qui quitte complètement l'application !) et reprend ensuite l'application, la disposition qu'elle verra est déjà celle de l'écran d'accueil. Si je place la conditionnelle à l'intérieur de onCreate()
ce qui aurait été affiché, c'est l'écran d'inscription, car selon le cycle de vie, il ne retourne pas à l'écran d'inscription. onCreate()
lors du retour d'une application à l'avant.
2 : Cette solution n'est idéale que si la fusion des fonctionnalités de ces deux activités ne produit pas un long bloc de code diabolique. Comme je l'ai dit, mon projet était de petite taille (sa fonctionnalité principale se produit en arrière-plan), de sorte que cette unique dynamique Activity
n'avait pas beaucoup d'éléments. Le sans écran Activity
est certainement la meilleure solution si vous souhaitez que votre code soit plus lisible par l'homme.