Quitter une Application Android Sur le bouton de retour
J'ai une application dans laquelle j'ai différentes activités. Dans l'activité 1, je veux que lorsque l'utilisateur appuie sur le bouton retour, je veux la fermeture de l'application et de l'écran d'accueil est affiché
Code
public boolean onKeyDown(int keyCode, KeyEvent event)
{
//Handle the back button
if(keyCode == KeyEvent.KEYCODE_BACK)
{
//Ask the user if they want to quit
new AlertDialog.Builder(this)
.setIcon(android.R.drawable.ic_dialog_alert)
.setTitle("Exit")
.setMessage("Really Exit ?")
.setPositiveButton("Yes", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int which)
{
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
})
.setNegativeButton("No", null)
.show();
return true;
}
else
{
return super.onKeyDown(keyCode, event);
}
}
Quand je lance le et appuyez sur le bouton de retour, l'écran d'accueil s'affiche, mais quand je le lance pour la deuxième fois, je reçois une sortie de la console comme
ActivityManager: Avertissement: Activité qui n'est pas commencé, sa tâche a été porté à l'avant.
Et de l'activité dans laquelle le dos pressé le bouton est affiché.
Je pense que l'application ne permet pas de se faire tuer et s'exécute en arrière-plan. Juste pour dire, ce n'est pas le départ de l'activité de mon application.
Quelqu'un peut-il m'aider, je suis débutant.
- Votre question n'est pas claire chers.
- écrire
finish();
dans onPause()... - Point d'Information: Depuis Android 2.0 par défaut de niveau supérieur gestionnaire pour le bouton de retour a été à la valeur par défaut (classe d'Activité) de la mise en œuvre de onKeyUp(), pas onKeyDown(). Donc, si vous allez tenter de modifier ce comportement (par exemple, par des invites de confirmation), l'endroit pour le faire, ce serait sans doute dans une substitution de onKeyUp(). Cette Activité par défaut.onKeyUp() elle-même appelle onBackPressed(), et son implémentation par défaut est l'appel de finition(), qui met fin à votre actuel (principale) de l'activité.
- Donc, si vous êtes intercepté le bouton de retour et de mettre en place un dialogue au lieu de cela, alors vous aurez à appeler la fin (de) - vous dans le onClick() gestionnaire pour le bouton Oui dans la boîte de dialogue.
Vous devez vous connecter pour publier un commentaire.
Pour chaque Intention vous avez utilisé pour aller dans d'autres activités ont u à suivre cette voie pour le passage de l'intention juste passer drapeau pour chaque intention, comme indiqué ci-dessous et après le démarrage de Activité à l'aide de startActivity() u faut ajouter finish() après que le code de démonstration comme indiqué ci-dessous
Essayez ce code :
Également vérifier ce Lien
Vous ne pouvez pas tuer votre demande à votre volonté. Le système d'exploitation android va le faire quand il veut libérer les ressources qui lui sont allouées. Vous ne pouvez pas réellement mettre en œuvre les sortie le concept d'application dans android. L'utilisateur peut simplement naviguer loin de votre
Activity
et d'y revenir. Si elle doit être redémarré à partir de la premièreActivity
ou de la reprise où il la gauche, jusqu'à l'OS android, pas vous.Lire cet article pour comprendre la philosophie de la façon dont les applications android devraient être conçus et pourquoi vous ne voulez pas de sortie à votre volonté:
Est fermeture d'une application mal vu?
finish()
sur queActivity
à dire le système d'exploitation que l'on fait avec ceActivity
et l'OS est libre de détruire et de libérer les ressources allouée à elle.finish()
sur chaqueActivity
une fois votre naviguer loin de.Activities
. Vous devrez appelerfinish()
sur tous.Ajouter
finish();
après que la ligne destartActivity(intent)
terminer votre activité.Grâce
vous devez inclure cette classe en tant que tel dans votre code.........
Alors vous avez besoin d'étendre à toutes les autres classes de cette classe comme dans l'exemple ci-dessous:
Une autre classe:
Dernière Classe:
Maintenant, lorsque vous appuyez sur le bouton de retour dans la troisième activité de toutes les autres activités seront également terminé complètement.
1/ne pas oublier d'inscrire le récepteur dans onCreate et annuler l'inscription de() en ondestroy().
Votre question n'est pas claire chers.
Conformément à ma connaissance, vous devez utiliser la diffusion de Récepteur pour la finition de l'application et de passer de l'intention à l'Écran d'accueil.
En outre Avertissement n'est rien , avant d'exécuter votre application, appuyez simplement sur Entrée dans votre code ou donner de la sm espace et den enregistrer et ré - exécutez vous appication.Il sera beau travail....
si vous voulez sortir de votre application sur le dos de la presse, alors vous devez terminer toutes les activités précédentes lorsque vous appuyez sur le bouton de retour sur l'écran pour cela, vous devez utiliser le concept de DIFFUSION RÉCEPTEUR ...... signifie que vous avez diffusé une intention sur le dos de presse qui sera la fin de toutes les activités précédentes.