2010-09-18 8 views
0

Fondamentalement, nous maintenons les sessions pour l'environnement de l'utilisateur spécifique. Pour cela, Trois choses de base que nous devons maintenir. Ce sont Login, Session check et Logout.Activités Design dans Android?

Dans Android, chaque écran conçu par activité. nous pouvons startActivity() et finish() une activité en cours. Mais vous ne pouvez pas faire cette activité précédente.

Conception de l'interface utilisateur de l'APP:

Login (activité principale) -> Accueil (Activité enfant) -> Il contient le profil, ajouter des données, paramètres, etc. (sous-activité de l'enfant).. Tout l'écran a une option de déconnexion dans le menu.

Le problème est:

Lorsque je sélectionne une déconnexion. L'application se déconnecte Mais je ne peux pas naviguer dans l'application à l'écran de connexion. L'activité enfant précédent n'a pas terminé à partir de la pile d'activités.

Une idée pour y parvenir? C'est le plus reconnaissant.

+3

Vous ne devriez pas avoir d'écran de déconnexion spécial car ce n'est pas quelque chose qu'un utilisateur android attend. Faites en sorte que l'application se déconnecte automatiquement lorsqu'elle est fermée ou détruite, sinon les utilisateurs ne pourront pas utiliser correctement le bouton Précédent par exemple. Un bouton de déconnexion est très similaire à un bouton de sortie, alors voyez ceci: http://blog.radioactiveyak.com/2010/05/when-to-include-exit-button-in-android.html – poke

Répondre

1

Un motif de modèle pourrait bien s'intégrer ici. (Pseudocode suivant)

public class BaseActivity extends Activity{ 

    protected void onCreate(savedInstance){ 
     if(user is logged in){ 
     onLoggedIn(savedInstance); 
     else{ 
     //TODO: clear some flags in your object model which identify 
     //the case when the user is logged in 

     startActivity(this,LoginActivity.class); 
     finish(); 
     } 
    } 

    protected abstract void onLoggedIn(savedInstance); 
} 

public class SomeActivity extends BaseActivity{ 

    protected void onLoggedIn(savedInstance){ 
     //normally do activity stuff 
    } 
} 

Attention: Je n'ai pas essayé cela. C'est juste une idée qui me vient à l'esprit en ce moment. Fondamentalement, vous avez votre activité de base qui a la méthode onCreate (...) où vous vérifiez si l'utilisateur est connecté. Dans le cas où il est connecté, vous appelez une méthode abstraite "onLoggedIn (...)" sinon vous démarrez l'activité de connexion et effacez les informations de connexion dans votre modèle d'objet.

Questions connexes