De retour bouton enfoncé
J'ai de multiples activités avec 5 écrans différents.Comment dois-je gérer une situation si une touche est pressée ??dans le Premier Écran et d'autres écrans ?? finish() et du Système.exit() ne fonctionne pas ..Que dois-je faire pour sortir de ma demande si l'Arrière est enfoncé ??
Le dessous de codage ne fonctionne pas ?Merci de me suggérer un moyen de sortir d'une application ayant plusieurs écrans
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if (keyCode == KeyEvent.KEYCODE_BACK)
{
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
this);
new AlertDialog.Builder(this) .setMessage("Are you sure you want to exit?")
.setCancelable(true)
.setPositiveButton("Yes", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface hi, int dd)
{
Intent exitIntent = new Intent(Mapper.this,SplashActivity.class);
exitIntent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP|Intent.FLAG_ACTIVITY_CLEAR_TOP);
SplashActivity.mHandler.sendEmptyMessage(0);
startActivity(exitIntent);
}
}
)
.setNegativeButton("Cancel", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface hi, int dd)
{
}
}
);
AlertDialog alertDialog = alertDialogBuilder.create();
//show it
alertDialog.show();
//AlertDialog alert1 = alt_bld.create();
//alert1.setTitle("EXIT");
//alert1.show();
return true;
}
return super.onKeyDown(keyCode, event);
}
And in Start.Class:
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if (keyCode == KeyEvent.KEYCODE_BACK || keyCode == KeyEvent.KEYCODE_HOME)
{
mHandler.removeCallbacksAndMessages(null);
SplashActivity.this.finish();
}
return super.onKeyDown(keyCode, event);
}
Beaucoup de gens ont essayé de vous aider avec cela, et ils sont tous de droite. Accepter une réponse ou d'être plus précis au sujet de votre question
OriginalL'auteur Sindu | 2012-11-14
Vous devez vous connecter pour publier un commentaire.
De substituer
onBackPressed()
comme ça...Essayez
super.onBackPressed();
Si vous souhaitez fermer une pile d'activités à la fois, vous devez utiliser
startActivityForResult(inent, R.id.your_button);
quand démarrer une autre activité et si vous souhaitez fermer l'activité d'ajoutersetResult(RESULT_OK);
avantfinish();
dans onActivityResult:@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == R.id.your_button && resultCode == RESULT_OK) { setResult(RESULT_OK); finish(); }
OriginalL'auteur Artyom Kiriliyk
Pourquoi tout ce que vous voulez à la sortie sur la touche retour enfoncée? Il n'est pas android comme comportement. En appuyant sur le dos de l'utilisateur veut habituellement de retour à l'activité précédente, mais de ne pas quitter votre application. Android va gérer lui-même l'activité de destruction en cas de besoin.
sur le dos pressé ne quitter votre application si c'est la racine de l'activité (ou la première activité que vous avez créé dans votre application)
Jameo est wright. De retour signifie généralement "retour en arrière", mais pas de sortie. Android joue différente, alors les OS de bureau... ici ya beaucoup de les mêmes questions, essayer de chercher à comprendre comment il fonctionne.
OriginalL'auteur Prizoff
D'abord, êtes-vous en train de dire que vous voulez comme ça?
Activité actuelle est Activity5. Le dos appuyé. Sortie d'ensemble de l'application? Voulez-vous quitter l'application sur le dos appuyé sur quelle que soit l'activité en cours, vous êtes dans? Comme Activity3, dos pressé, alors la sortie? Si oui, Vous pouvez les appeler finish() après chaque startActivity() appel de l'appelant activité. Ou vous pouvez choisir d'utiliser une variable résultat de toutes les activités que vous appelez. Par exemple, vous pouvez appeler Activity2 de Activity1 en l'appelant par staryActivityWithResult() et en attente de son résultat à l'intérieur de la onActivityResult() la méthode de la source de l'Activité - Acitivity1. Donc, si le dos est appuyé sur Activity2, avoir de la variable passée sur setResult() la méthode de Activity2 avant finisihing. Ce résultat sera ensuite transmis à l'appelant Activity1, alors vous pouvez maintenant faire ce que vous voulez en fonction du résultat que vous avez passé.
OriginalL'auteur Axel
Ce que vous êtes certainement à la recherche est onBackPressed:
Je ne suis pas sûr du contexte :
Cette ligne n', mais d'autres que votre intention initiale devrait revenir à votre écran de démarrage. Ce que je voudrais faire, Si vous voulez vraiment quitter votre application sur le dos de la presse, je voudrais mettre certaines données, dites
Fondamentalement juste un indicateur que votre démarrage d'activité peut lire et décider de faire appel finish() sur lui-même. La seule "bonne" façon de fermer une application manuellement est à la fin de la première activité(même si sa fait assez rare pour forcer les utilisateurs à quitter votre application)
Edit:
OK, donc dans votre application que vous allez remettre (ressemble SplashActivity), vous allez chercher une intention dans le onCreate de la sorte:
Découvrez mon montage à ma réponse. Vous devez être l'appel de finition en activité à votre retour. Vous pourrez le faire en mettant un booléen dans l'intention, puis de le rechercher dans onCreate de votre première activité. Si elle voit le but, il appelle la finition et l'application devrait quitter
OriginalL'auteur Jameo