2011-09-23 5 views
3

Je fais une sorte d'application de réseautage social. J'applique la fonctionnalité de déconnexion. sur le bouton Déconnexion cliquez dessus doit accéder à l'écran de connexion mais il navigue maintenant aux screen.I page d'accueil suis en utilisant le code suivant pour fermeture de session ..Fonctionnalité de déconnexion dans android

IntentFilter intentFilter = new IntentFilter(); 
    intentFilter.addAction("com.package.ACTION_LOGOUT"); 
    registerReceiver(new BroadcastReceiver() { 
    public void onReceive(Context context, Intent intent) { 

     System.out.println("onReceive Log out in progress"); 
      Intent intent1 = new Intent(getApplicationContext(),   Login.class); 
        startActivity(intent1); 
           finish(); 
       } 
      }, intentFilter); 

Répondre

4

donnent simplement l'intention de votre activité de connexion et mettre le drapeau dans l'intention

inten1.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 

il va effacer toutes les activités et naviguer vers votre page de connexion.

+0

Je l'ai fait already.it navigue à nouveau à la page d'accueil instaed de l'écran de connexion – ekjyot

+0

Ensuite, vous terminez toutes les activités tout en naviguant à côté de l'activité, vous devez vérifier votre code, voir s'il y a une ligne finish() lorsque vous démarrez l'activité. –

+0

ya je finis des activités – ekjyot

1

Il s'agit d'un problème de pile. Vous devez le gérer. La meilleure solution que je trouve est de garder une seule activité dans la pile quand votre application fonctionne et sur l'écran de déconnexion seule connexion sera en pile et si l'utilisateur appuie sur le bouton de retour, il verra l'écran d'accueil.

+0

comment faire ceci? – ekjyot

+0

finish() l'activité lorsque vous passez à une nouvelle activité ...... –

6

utiliser pour la déconnexion.

yourintent.setflag(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_NEW_TASK); 

Il peut vous aider à

+0

J'ai essayé cela aussi .. mais encore une fois il navigue vers l'écran de la page d'accueil – ekjyot

+0

Salut ekjyot terminer votre page d'accueil lorsque vous vous déplacez de l'activité de la page d'accueil. – amity

+0

Salut ekjyot j'ai mis à jour ma réponse s'il vous plaît essayez-le je suis sûr que cela fonctionne – amity

1

Ce qui a fonctionné pour moi est de garder une trace de votre état de connexion interne, en utilisant une sorte de monde:

public boolean loggedin = false; 

puis dans toutes vos activités, passer outre onResume() et finish() si vous êtes déconnecté:

@Override 
public void onResume() { 
    super.onResume(); 
    if (!loggedin) 
    finish(); 
} 
0

Apportez d'abord ces modifications à votre code

Intent intent = new Intent(getApplicationContext(),Login.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(intent); 

Ensuite, supprimez finish(); écrit à l'intérieur de votre récepteur de diffusion. Bonne chance.

1

Essayez ceci:

Intent intent = new Intent(getApplicationContext(), Login.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); 
Toast.makeText(this, "Signed out", Toast.LENGTH_SHORT).show(); 
startActivity(intent); 
finish(); 
Questions connexes