web-dev-qa-db-fra.com

Comment arrêter un programme en cours d'exécution sous Eclipse?

Je ne trouve pas d’option permettant d’arrêter un programme en cours d’exécution (en mode débogage ou publication).

Donc pour l'instant, j'arrête le programme (rendant le contrôle à Eclipse) simplement en fermant l'émulateur.

Existe-t-il une meilleure façon de le faire? Telle que je n'ai pas besoin de fermer (et de redémarrer) l'émulateur?

107
Android Eve

Je comprends que vous souhaitiez arrêter votre application sur l’émulateur. Pour cela, vous pouvez ouvrir la fenêtre des périphériques (dans la perspective de débogage), sélectionner le processus, puis appuyer sur le bouton d'arrêt de la même fenêtre.

112
Varun

Ceux qui trouvent fastidieux de basculer entre les perspectives pour arrêter le programme (comme je l’ai fait), vous pouvez afficher les fenêtres des périphériques dans votre perspective actuelle en sélectionnant

Windows> Afficher la vue> Autre ...> Android> Appareils

77
GeekityGeek

Gardez à l'esprit que sur Android, les programmes ne s'arrêtent généralement que si vous avez terminé () ou si le système les détruit lorsque vous avez besoin de mémoire. Pourquoi tout arrêter? Vous n'avez pas besoin d'arrêter pour réparer/réinstaller/re-tester, par exemple.

13
DJC

Dans la perspective "Débogage", sélectionnez la racine de l'application sous "Débogage" (où figure la liste des threads actifs) et cliquez sur le bouton Arrêter.

11
Chris Thompson

Travailler pour moi.

Windows -> Perspective ouverte -> Autre ... -> DDMS

  1. Dans la vue Android, sur les fenêtres de gauche, vous pouvez voir "Périphériques". Il devrait y avoir une liste des applications en cours d'exécution (émulateur ou périphériques physiques). Cliquez sur l'application souhaitée. pour fermer. Normalement, le nom est le nom du paquet + le nom de l'application
  2. Cliquez maintenant sur le symbole "Stop".

Pour revenir à la vue normale, il suffit d’appuyer sur le bouton Java en haut à droite. Vous pouvez également le faire en appuyant sur: Windows -> Ouvrir la perspective -> Autre ... -> Java

7
Zain Ali

cette réponse ne concerne pas Eclipse, mais puisque cette question se pose dans une recherche Google pour arrêter un programme en cours d'exécution Android, j'aimerais proposer une méthode de ligne de commande. run adb Shell, trouvez le PID du processus que vous voulez tuer avec ps, par exemple le mien était:

u0_a46 2097 37 175520 19912 ffffffff 40037ebc S net.unternet.bleah.blarg

alors alors juste kill 2097 et vous devriez voir l’écran principal réapparaître.

2
jcomeau_ictx

Ajoutez un point d'arrêt à votre code où vous souhaitez vous arrêter, puis exécutez-le en mode débogage en appuyant sur F11.

0
salman khalid

Android Zombies Figure 1 - De nombreux zombies ont été tués lors de la recherche de cette réponse

Tuer un processus Android application Java VM au niveau du système d'exploitation n'est pas recommandé. Malheureusement, c’est exactement ce que la fenêtre du périphérique Eclipse "stop" fait, de même que System.exit () et la commande "kill" du shell.

Cela sous-convertit les méthodes de cycle de vie d'application normales telles que onStop (), onDestroy () et finalize ().

De nombreuses applications requièrent ces méthodes pour quitter en douceur (par exemple, si elles utilisent des objets système tels que Sensor, MediaPlayer, Egaliseur, Visualizer, etc.).

Ces objets système traînent avec des poignées zombies sur les ressources système si release () n'est pas appelé explicitement au cours de ces méthodes de cycle de vie. Voir la fig. 1 ci-dessus. Cela peut empêcher une application de redémarrer et même nécessiter un redémarrage. C'est l'aspect peu gracieux.

La seule solution est de vous assurer que vous quittez toujours votre application proprement en appelant onStop (), onDestroy () ou au moins finalize (). C'est ce que fait le débogueur, ainsi que le système d'exploitation à l'arrêt.

Vous pouvez configurer votre application pour intercepter les événements SIG_HUP afin de forcer une sortie en douceur à partir de la ligne de commande.

La seule fois où vous voudriez tuer l'application VM est dans l'état ANR (déjà un zombie). Les ANR doivent être corrigés. Ne déployez jamais une application pouvant entrer dans cet état. C'est extrêmement impoli.

Vous pouvez utiliser Google Analytics et le Play Store pour en surveiller le déploiement. Vous ne voulez pas que les utilisateurs en colère donnent des avis ANR à une seule étoile après avoir dû redémarrer à cause de votre application zombie. Très mauvais.

N'oubliez pas que Android est Linux: traitez-le comme un véritable système d'exploitation et respectez le cycle de vie des applications, sinon vous ferez face à la terrible Apocalypse Zombie.

PS: Si vous n'aimez pas l'analogie de Zombie, qu'en est-il de Fantasia?

enter image description here

0
Dominic Cerisano

Voir l'image: 1. Cliquez sur DDMS; 2. Sélectionnez l'application actuelle. 3. Cliquez sur "Stop" enter image description here

0
Eugene Bosikov