Je suis sûr que cette question a été posée plusieurs fois parce que j'en ai lu quelques-unes. Mon client veut que je mette un bouton dans son application où les utilisateurs peuvent cliquer et quitter. J'ai lu ceci et j'ai trouvé que l'appel finish()
le ferait. Mais, terminer ne fait que fermer l'activité courante, n'est-ce pas? J'ai beaucoup d'activités, donc dans ce cas, je dois passer chaque instance d'activité et les terminer ou faire de chaque activité un modèle Singleton.
J'ai également appris à savoir Activity.moveTaskToBack(true)
que vous pouviez accéder à l'écran d'accueil. OK, ce n'est pas la fermeture mais l'arrière-plan du processus. Alors, est-ce efficace?
Quelle méthode dois-je utiliser pour fermer complètement l'application? L'une des méthodes décrites ci-dessus ou toute autre méthode / autre utilisation des méthodes ci-dessus?
la source
Réponses:
En fait, tout le monde cherche à fermer l'application sur un événement onclick, quelle que soit l'activité ...
Alors les amis les gars essaient ce code. Mettez ce code sur l'événement onclick
Intent homeIntent = new Intent(Intent.ACTION_MAIN); homeIntent.addCategory( Intent.CATEGORY_HOME ); homeIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(homeIntent);
la source
Vous pouvez appeler System.exit (); pour sortir de toutes les activités.
submit=(Button)findViewById(R.id.submit); submit.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { android.os.Process.killProcess(android.os.Process.myPid()); System.exit(1); } });
la source
La méthode finishAffinity, publiée dans l'API 16, ferme toutes les activités en cours et ferme l'application:
this.finishAffinity();
Depuis l'API 21, vous pouvez utiliser:
Alternatives:
getActivity().finish(); System.exit(0);
int pid = android.os.Process.myPid(); android.os.Process.killProcess(pid);
Intent i = new Intent(context, LoginActivity.class); i.putExtra(EXTRA_EXIT, true); i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); context.startActivity(i);
Source: Comment quitter l'application Android par programme
J'espère que cela aide! Bonne chance!
la source
Si vous souhaitez quitter votre application, utilisez ce code dans votre événement bouton appuyé:
public void onBackPressed() { moveTaskToBack(true); android.os.Process.killProcess(android.os.Process.myPid()); System.exit(1); }
la source
@Override public void onBackPressed() { AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this); alertDialogBuilder.setTitle("Exit Application?"); alertDialogBuilder .setMessage("Click yes to exit!") .setCancelable(false) .setPositiveButton("Yes", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { moveTaskToBack(true); android.os.Process.killProcess(android.os.Process.myPid()); System.exit(1); } }) .setNegativeButton("No", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { dialog.cancel(); } }); AlertDialog alertDialog = alertDialogBuilder.create(); alertDialog.show(); }
la source
C'est bien trop facile. Utilisation
System.exit(0);
la source
Il y a actuellement deux situations possibles:
Vous pouvez quitter l'activité en utilisant le code suivant:
var intent = new Intent(Intent.ActionMain); intent.AddCategory(Intent.CategoryHome); intent.SetFlags(ActivityFlags.NewTask); startActivity(intent); finish();
Mais cela ne tuera pas les activités sous-jacentes dans la même application. Cela minimisera simplement l'application.
Si vous souhaitez quitter l'application, utilisez le code suivant pour terminer son processus:
pour le développement mono, utilisez simplement
la source
android.os.Process.killProcess(android.os.Process.myPid());
etprocess.KillProcess(Process.MyPid());
?Que diriez-vous
this.finishAffinity()
À partir des documents,
la source
la source
cela effacera la tâche (pile d'activités) et commencera une nouvelle tâche
Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_HOME); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); System.exit(1);
la source
@Override public void onBackPressed() { Intent homeIntent = new Intent(Intent.ACTION_MAIN); homeIntent.addCategory( Intent.CATEGORY_HOME ); homeIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(homeIntent); }
la source
mettez celui-ci dans votre onClic:
moveTaskToBack(true); finish()
la source
movewTaskToBack
ne termine rien, elle cache simplement l'application et,finish
comme mentionné par quelqu'un d'autre, ne termine que le courantactivity
. Donc, il quitte l'activité actuelle et cache le reste, le cas échéant. Quoi qu'il en soit, il ne devrait pas obtenir un vote négatif juste pour cela ...Essayez ceci lors d'un appel. Je l'utilise parfois en un clic sur un bouton.
Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_HOME); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent);
Au lieu de fermer votre application, cela ouvre le tableau de bord pour donner l'impression que votre application est fermée.
lire cette question pour plus de clarté android - quitter le code de l'application
la source
Utilisez this.finishAffinity (); sur ce bouton au lieu de finish (); Si cela ne fonctionne pas, vous pouvez également essayer en ajoutant android: noHistory = "true" dans votre manifeste, puis terminer votre activité en uisng finish (); ou finishAffinity ();
J'espère que cela aide....:)
la source
Réalisation dans Xamarin.Android:
public override void OnBackPressed() { MoveTaskToBack(true); Process.KillProcess(Process.MyPid()); Environment.Exit(1); }
la source
Appelez simplement ces deux fonctions
finish(); moveTaskToBack(true);
la source
Intent homeIntent = new Intent(Intent.ACTION_MAIN); homeIntent.addCategory( Intent.CATEGORY_HOME ); homeIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(homeIntent); System.exit(1);
Utilisez ce code, il est très utile et vous pouvez quitter toutes les activités.
la source
l'activité fantôme appelée avec singletop et finish () sur onCreate devrait faire l'affaire
la source
Cela fonctionne en utilisant uniquement
moveTaskToBack(true);
la source
Au lieu de System.exit (1) Utilisez simplement System.exit (0)
la source
Si quelqu'un se demande encore, pour Xamarin.Android (dans mon cas également Monogame en cours d'exécution), la commande
FinishAndRemoveTask()
surActivity
fait très bien le travail!la source
dans le fragment
getActivity (). finishAndRemoveTask ();
dans l'activité
finishAndRemoveTask ();
la source
utilisez simplement le code dans votre backpress
Intent startMain = new Intent(Intent.ACTION_MAIN); startMain.addCategory(Intent.CATEGORY_HOME); startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(startMain);
la source
Si vous utilisez EventBus (ou vraiment toute autre bibliothèque pub / sous) dans votre application pour communiquer entre les activités, vous pouvez leur envoyer un événement explicite:
final public class KillItWithFireEvent { public KillItWithFireEvent() {} public static void send() { EventBus.getDefault().post(new KillItWithFireEvent()); } }
Le seul inconvénient est que vous avez besoin de toutes les activités pour écouter cet événement
finish()
. Pour cela, vous pouvez facilement créer des classes d'activité shim par héritage qui écoutent simplement cet événement et laisser les sous-classes implémenter tout le reste, puis assurez-vous que toutes vos activités héritent de cette couche supplémentaire. Les écouteurs kill pourraient même ajouter des fonctionnalités supplémentaires via des remplacements, comme éviter la mort dans certaines situations particulières.la source
Exécutez simplement les deux lignes ci-dessous lorsque vous souhaitez quitter l'application
android.os.Process.killProcess(android.os.Process.myPid()); System.exit(1);
la source
finish(); finishAffinity(); System.exit(0);
travaillé pour moi
la source
Appelez simplement ceci:
la source
Liez cette méthode à votre bouton Quitter / Quitter
public void quitGame(View view) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { finishAndRemoveTask(); } else { finish(); } }
la source
Si vous utilisez à la fois terminer et quitter votre application se fermera complètement
terminer();
System.exit (0);
la source