2010-11-04 4 views
4

Je cherche du code pour un bouton qui ferme complètement mon application.Comment fermer une application par programme?

J'ai essayé avec certaines choses de Google, mais mon application fonctionne toujours en arrière-plan. Je dois le fermer complètement. Est-ce que le code fait ça?

+1

parfois les exceptions sont un chemin à parcourir. :) Ils vont certainement ** tuer ** votre application. –

Répondre

6

Pourquoi avez-vous vraiment besoin de fermer votre application? En supposant que c'est juste une application normale et ne pas exécuter de services en arrière-plan ou en tenant un wakelock (vous sauriez si vous faisiez ces choses), le système fait un très bon travail de gestion des tâches et mettra fin à votre application. la RAM sans intervention manuelle. Normalement, si vous n'avez que finish() votre base Activity cela se produira tout seul, mais il n'y a presque jamais de raison de le faire.

(La seule exception à cette règle est que votre Application conserve des références à des activités déjà terminées, ce qui peut entraîner des fuites de mémoire et empêcher votre application de se fermer normalement, mais vous saurez probablement si vous êtes faire quelque chose de poisson avec une sous-classe Application remplacée.C'est-à-dire: 99% du temps si vous voulez fermer votre Application de force, vous devez soit corriger n'importe quel bogue dans votre code, soit penser que le système ne peut pas le gérer seul, ou vous devez relisez le documentation on the Android application lifecycle (car vous devriez déjà avoir lu ceci 3 fois avant de commencer à écrire une application Android :)).

4

Peut-être que ce lien aidera developer page

Je citais la partie ci-dessous que je pense peut vous aider.

composants

Arrêt propre

Un fournisseur de contenu est actif uniquement alors qu'il est de répondre à une demande d'un ContentResolver. Et un récepteur de diffusion est actif seulement alors qu'il répond à un message de diffusion . Il n'est donc pas nécessaire de fermer explicitement ces composants. Par contre, les activités fournissent l'interface utilisateur. Ils sont dans une conversation de longue durée avec l'utilisateur et peuvent rester actifs, même si est inactif, tant que la conversation continue. De même, les services peuvent également continuer à fonctionner pendant une longue période. donc Android a des méthodes pour arrêter activités et services d'une manière ordonnée :

Une activité peut être arrêté en appelant sa méthode finition(). Une activité peut fermer une autre activité (une activité commencée avec startActivityForResult()) en appelant finishActivity().

Un service peut être arrêté en appelant sa méthode stopSelf() ou par en appelant Context.stopService().

Les composants peuvent également être fermées par le système quand ils ne sont plus utilisés ou lorsque Android doit récupérer de la mémoire pour les composants plus actifs. Une section ultérieure, Component Lifecycles, traite de cette possibilité et de ses ramifications plus en détail.

0

ont à l'esprit que:

finish(); 
méthode

ne se ferme que l'activité en cours. Si plusieurs activités sont ouvertes, vous devez appeler finish() par activité.

Remarque: le service de fermeture est différent.

4

Vous pouvez fermer toutes les activités de fond et quand réouvrir l'application Il commence à partir de la première activité

this.finish(); 
Intent intent = new Intent(getApplicationContext(), CloseApp.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent); 

Vous pouvez fermer toutes les activités de fond et lors de la réouverture de l'application Il commence à partir de l'activité en pause [où vous avez fermé] activité

this.finish(); 
    Intent intent = new Intent(Intent.ACTION_MAIN); 
    intent.addCategory(Intent.CATEGORY_HOME); 
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    startActivity(intent); 
Questions connexes