230 votes

Android : Empêchant de revenir à l’activité précédente

Je veux le faire sur Android: fondamentalement, une fois de RETOUR bouton est pressé sur le téléphone, je veux éviter que l'activité spécifique est de retour à son précédente.

Plus précisément, j'ai de connexion et d'inscription des écrans, à la fois de démarrer une nouvelle activité intitulée HomeScreen , en cas de réussite de connexion/inscription se produit. Une fois l'écran d'accueil est commencé, je veux éviter que les utilisateurs soient en mesure de retourner connecter ou vous inscrire à des écrans en appuyant sur la touche RETOUR.

J'ai essayé d'utiliser Intent.FLAG_ACTIVITY_NO_HISTORY , mais depuis que la demande a Facebook de l'intégration, lors de la "Connexion avec Facebook" est utilisé, Facebook devrait revenir à l'écran initial de connexion, donc je devrais garder un historique de ces activités.

J'ai pensé à remplacer le comportement de bouton de RETOUR sur HomeScreen directement l'application de finition lorsque le bouton est pressé et que j'ai utilisé

@Override
public void onBackPressed() {
    finish();
}

mais qui ne fonctionne pas.

Je suis tout à fait nouvelle dans le développement Android, de sorte que toute aide serait très utile.

Merci à l'avance.

373voto

coder Points 3432

Ma suggestion serait de terminer l’activité que vous ne voulez pas les utilisateurs à revenir. Par exemple, dans votre signe en activité, juste après avoir appelé , appelez . Lorsque les utilisateurs cliquez sur le bouton précédent, ils ne seront pas en mesure d’aller au signe en activité parce qu’il a été tué de la pile.

111voto

anoniim Points 334

J’ai eu un problème similaire avec le scénario de connexion et les principales activités.

Fondamentalement, je ne voulais pas laisser l’utilisateur remonter du MainActivity, donc je l’ai résolu en remplaçant `` de cette activité comme ceci :

``laisse votre backstack soit-il, met juste toutes les activités à fond (même comme si l’utilisateur a appuyé sur Home button).

39voto

paulsm4 Points 39422

Je ne suis pas sûr exactement ce que vous voulez, mais il semble que ça devrait être possible, et on dirait également que vous êtes déjà sur la bonne voie.

Voici quelques liens qui pourraient t'aider:

Désactiver le bouton de retour sur les appareils android

  MyActivity.java =>
    @Override
    public void onBackPressed() {

       return;
    }

Comment puis-je désactiver 'go back' à une certaine activité?

  AndroidManifest.xml =>
<activity android:name=".SplashActivity" android:noHistory="true"/>

7voto

cadavre Points 170

``vous donne une méthode pour fermer l’activité pas toute application en cours. Et mieux, vous n’essayez pas de chercher des méthodes tuer l’application. Petit Conseil.

Avez-vous essayé de conjonction de ? N’oubliez pas d’utiliser ce drapeaux dans démarre l’activité !

3voto

dmon Points 20795

réponse de paulsm4 est la bonne. Dans le cas de `` vous il suffit de retourner, il désactivera le bouton back. Toutefois, selon moi, une meilleure approche compte tenue de votre cas d’utilisation consiste à inverser la logique de l’activité, c'est-à-dire rendre votre activité abrite le principal un, contrôle si l’utilisateur est connecté là, sinon, démarrer le signe en activité. La raison est que si vous substituez le bouton de retour dans votre activité principale, la plupart des utilisateurs seront confus lorsqu’ils Appuyez sur retour et votre application ne fait rien.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X