web-dev-qa-db-fra.com

Comment tuer une activité Android en la quittant de manière à ce qu'il ne soit pas accessible depuis le bouton de retour?

Dans une activité Android donnée, j'aimerais commencer une nouvelle activité pour l'utilisateur à un moment donné. Une fois qu'ils ont quitté la première activité et sont arrivés à la seconde, la première activité est périmée et je veux l'enlever complètement afin qu'elle ne puisse plus être consultée à partir du bouton Précédent.

Comment est le meilleur moyen d'y parvenir? Comment puis-je tuer ou détruire cette activité immédiatement après que l'utilisateur a lancé la nouvelle activité?

115
JohnRock

Il vous suffit d'appeler finish()

Intent intent = new Intent(this, NextActivity.class);
startActivity(intent);
finish();
214
CaseyB

Si vous définissez Android:noHistory="true" sur l'activité dans votre manifeste, une activité sera supprimée de la pile chaque fois que vous en sortez. voir ici

97
jqpubliq

vous pouvez utiliser:

intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
9
Jmorvan

Oui, tout ce que vous avez à faire est d'appeler finish () dans n'importe quelle activité que vous souhaitez fermer.

7
RobGThai

Vous pouvez également ajouter Android:noHistory="true" à votre balise Activity dans AndroidManifest.xml.

<activity
            ...
            Android:noHistory="true">
</activity>
4
Danke Xie

Ecrivez ceci dans chaque "nouvelle activité" après avoir initialisé votre nouvelle intention-> 

Intent i = new Intent(this, yourClass.class);
startActivity(i);
finish();
4
JBL AK-47

Enfin, j'ai une solution!

Mon contexte est : - Je veux déconnecter la connexion de socket lorsque l'activité est détruite, j'ai essayé de terminer l'activité (), mais cela ne m'a pas fonctionné , sa connexion continue quelque part.

donc j’utilise Android.os.Process.killProcess(Android.os.Process.myPid()); pour tuer mon activité et j’ai utilisé Android:excludeFromRecents="true".__ pour supprimer de l’activité récente.

1
kdblue

Il vous suffit d’utiliser le code ci-dessous lors du lancement de la nouvelle activité.

startActivity(new Intent(this, newactivity.class));
finish();
0
Soni Kumar

Ajoutez cet attribut à votre activité dans le fichier manifeste. Android: noHistory = "true"

0