Précédent   Forum des professionnels en informatique > Java > Général Java > Java & Mobiles > Android
Android Forum d'entraide sur Android, la plateforme mobile de Google pour téléphones portables et Smartphones. Avant de poster -> FAQ Android
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/02/2012, 03h03   #1
Invité régulier
 
Homme Arsène Huot
Développeur informatique
Inscription : février 2012
Messages : 17
Détails du profil
Informations personnelles :
Nom : Homme Arsène Huot
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2012
Messages : 17
Points : 5
Points : 5
Par défaut Bouton pour fermer l'application

Hello tout le monde,
Je ne trouve pas grand chose pour quitter l'application excepté la fonction finish().
Mon problème est que j'ai plusieurs activity qui tournent parfois en même temps. Le finish ne ferme que celle qui a le focus, c'est donc gênant car j'ai pas de bouton pour faire quitter l'application d'un coup à l'utilisateur.
Faut-il utiliser des évènements pour lancer un event lors de l'appuie sur le bouton quitter ? y'a t'il une simple fonction qui ferait l'affaire ?

Merci d'avance,
Arsène
lupin78 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2012, 14h57   #2
Invité régulier
 
Homme Arsène Huot
Développeur informatique
Inscription : février 2012
Messages : 17
Détails du profil
Informations personnelles :
Nom : Homme Arsène Huot
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2012
Messages : 17
Points : 5
Points : 5
Ah c'est bon j'ai trouvé un truc mais je sais pas si c'est très propre.
Code :
1
2
3
4
ActivityManager am = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
List<ActivityManager.RunningTaskInfo> taskInfo = am.getRunningTasks(1); 
ComponentName componentInfo = taskInfo.get(0).topActivity;
am.restartPackage(componentInfo.getPackageName());
lupin78 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2012, 15h45   #3
Invité régulier
 
Homme Arsène Huot
Développeur informatique
Inscription : février 2012
Messages : 17
Détails du profil
Informations personnelles :
Nom : Homme Arsène Huot
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2012
Messages : 17
Points : 5
Points : 5
Bon ba ça marche dans l'émulateur mais pas sur mon mobile. Ca doit être des problèmes de sécurité.
lupin78 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/02/2012, 00h00   #4
Membre habitué
 
Avatar de eric-m
 
Homme Éric
Chef de projet MOA
Inscription : mars 2011
Messages : 51
Détails du profil
Informations personnelles :
Nom : Homme Éric
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Chef de projet MOA
Secteur : Transports

Informations forums :
Inscription : mars 2011
Messages : 51
Points : 123
Points : 123
Effectivement l'appel de finish() ne ferme pas l'application, mais seulement l'activity.
Quitter une application, n'est pas trop dans la philosophie d'android, c'est le systeme qui gère l'arrêt des applications.

Il est possible de passer une application en arrière plan en appuyant sur la touche home qui ramène sur le bureau.

On peut simuler l'appuie de cette touche par le code suivant
Code :
1
2
3
4
5
 
 Intent intent = new Intent();
intent.setAction(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
this.startActivity(intent);
eric-m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/02/2012, 23h49   #5
Invité régulier
 
Homme Arsène Huot
Développeur informatique
Inscription : février 2012
Messages : 17
Détails du profil
Informations personnelles :
Nom : Homme Arsène Huot
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2012
Messages : 17
Points : 5
Points : 5
Hello,
J'ai essayé une autre technique avec les startActivityForResult, suivant la valeur de retour j'y faisait un finish() ou pas. Mais bon j'ai pas vraiment réussi xD
Pour l'instant je prends ta solution donc merci
lupin78 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/02/2012, 23h53   #6
Membre du Club
 
Inscription : janvier 2006
Messages : 105
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 105
Points : 43
Points : 43
Envoyer un message via MSN à FinalSpirit
Si tu veux "quitter" l'application, il faut vider la pile des activités de ton application. Tu as une activité qui est lancé en premier. A partir de celle ci, tu ouvres d'autres activités et tout cela forme une pile. Si tu gère bien ta pile, lorsque tu reviens sur ton premier écran et que tu fais un finish, toutes les activités de ton application sont fermées.

Pour parvenir à bien gérer la pile, il faut utiliser les flags (http://developer.android.com/referen...OUGHT_TO_FRONT). Par exemple, tu peux lancer ton activité principale avec le flag FLAG_ACTIVITY_CLEAR_TOP qui va vider toutes les activités sur la pile et tu fermes cette dernière. Après cela dépend de comment tu gères tes activités. Dans la plupart de mes applications, je ne surcharge jamais le onPressedBackButton() afin de laisser "Android" gérer ma pile.
FinalSpirit est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h30.


 
 
 
 
Partenaires

Hébergement Web