J'ai donc une activité de connexion Cette activité gonfle une disposition login.xml qui a une vue USER_NAME et PASSWORD EditText, lorsque j'entre le nom d'utilisateur et le mot de passe et que je clique sur le bouton de connexion, je démarre une nouvelle activité.
La nouvelle activité a un bouton de déconnexion qui démarre simplement l'activité précédente comme ceci:
Intent loginIntent = new Intent(getActivity(), Login.class);
loginIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
getActivity().startActivity(loginIntent);
Selon la documentation Android, l'indicateur fait ce qui suit:
http://developer.Android.com/reference/Android/content/Intent.html#FLAG_ACTIVITY_CLEAR_TOP
S'il est défini et que l'activité en cours de lancement est déjà en cours d'exécution dans la tâche en cours, alors au lieu de lancer une nouvelle instance de cette activité, toutes les autres activités au-dessus de celle-ci seront fermées et cette intention sera livrée au (maintenant sur haut) ancienne activité en tant que nouvelle intention.
Le problème est que le nom d'utilisateur et le mot de passe apparaissent toujours dans les vues EditText après ma déconnexion, existe-t-il un indicateur qui détruit l'activité de connexion et en démarre une nouvelle ou existe-t-il un moyen de réinitialiser les champs chaque fois que je me déconnecte? Quelle est la meilleure approche?
Vous avez 2 choix:
1 - Tuez l'activité de connexion après une connexion réussie
Intent loginIntent = new Intent(getActivity(), Login.class);
loginIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
getActivity().startActivity(loginIntent);
finish();
2 - Videz les valeurs puis lancez une nouvelle activité
edittext_username.setText("");
edittext_password.setText("");
Si vous ne prenez en charge que les niveaux d'API 11+, vous devriez pouvoir utiliser FLAG_ACTIVITY_CLEAR_TASK . Cela terminera toutes les activités existantes dans toutes les tâches et créera une nouvelle instance de l'activité de connexion.