Comment arrêter un programme en cours d'exécution sous Eclipse?
Je ne peux pas trouver une option pour arrêter l'exécution d'un programme (que ce soit en mode debug ou release).
Donc pour l'instant, j'ai arrêter le programme (de retour de contrôle de l'Éclipse) simplement par la fermeture de l'émulateur.
Est-il une meilleure manière de faire ceci? Tel que je n'ai pas besoin de fermer (et redémarrez-le) de l'émulateur?
Vous devez vous connecter pour publier un commentaire.
Je comprends que vous voulez arrêter de votre application sur l'émulateur. Pour cela, vous pouvez ouvrir la fenêtre de périphériques (dans la perspective debug), sélectionnez le processus, puis appuyez sur le bouton d'arrêt sur la même fenêtre.
RemoteException sending setActive(false) notification
dans le logCat fenêtre d'affichageCeux qui trouvent qu'il est fastidieux de commutation entre les perspectives pour arrêter le programme (comme moi), vous pouvez afficher les périphériques windows dans votre point de vue actuel en sélectionnant
Gardez à l'esprit que sur Android, les programmes en général, seulement "stop" lorsque vous avez terminé() ou le système détruit lorsque la mémoire est nécessaire. Pourquoi s'arrêter à tous? Vous n'avez pas besoin de s'arrêter pour réparer/réinstaller/re-test, par exemple.
while(true)
.Dans le "Debug" point de vue, sélectionnez la racine de l'application, en vertu de "Debug" (où l'inscription à la liste de threads actifs est) et cliquez sur le bouton arrêter.
De travail pour moi.
Windows -> Ouvrir la perspective -> Autres... -> DDMS
Cliquez sur l'application que vous souhaitez fermer. Normalement, le nom est le nom du package + le nom de l'application
Pour revenir à l'affichage normal, vous avez juste à appuyer sur le Java bouton sur le côté en haut à droite.
Vous pouvez aussi le faire en appuyant sur:
Windows -> Ouvrir la perspective -> Autres... -> Java
cette réponse ne traite pas avec Eclipse, mais depuis que cette question vient dans une recherche Google pour l'arrêt de l'exécution d'un Android programme, je tiens à offrir une méthode de ligne de commande. exécuter
adb shell
, trouver le PID du processus que vous voulez tuer avecps
, par exemple le mien était:u0_a46 2097 37 175520 19912 ffffffff 40037ebc S net.unternet.bleah.blarg
alors juste
kill 2097
et vous devriez voir l'écran principal de montrer de nouveau.Ajouter un point d'arrêt dans votre code où vous souhaitez vous arrêter et ensuite l'exécuter en mode de Débogage en appuyant sur F11.
Figure 1 - Nombre de Zombies tués lors de la recherche de cette Réponse
Tuer une application Android Java VM processus au niveau de l'OS n'est pas recommandé. Malheureusement, c'est exactement ce que l'éclipse fenêtre de l'appareil "stop" n'est, comme le fait le Système.exit() et la coquille "tuer" la commande.
Ce subvertit la normale application de méthodes de cycle de vie comme onStop(), onDestroy(), et finalize().
De nombreuses applications nécessitent de ces méthodes pour gracieux sortie (ex. si ils utilisent le système des objets comme des Capteur, MediaPlayer, Égaliseur, Animations, etc).
Ces objets du système de traîner avec zombie poignées de mort sur les ressources système, si la diffusion() n'est pas appelé explicitement au cours de ces méthodes de cycle de vie. Voir 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 disgracieux.
La seule solution est de assurez-vous de toujours quitter votre application proprement avec un appel à onStop() ou onDestroy() ou au moins finalize(). Le débogueur n'cela, comme le fait le système d'exploitation lors de l'arrêt.
Vous pouvez configurer votre application pour piéger SIG_HUP événements dans l'ordre à la force d'un gracieux sortie de la ligne de commande.
Le seul moment où l'on allait tuer l'application de la VM est dans l'ANR (déjà un zombie) de l'état. ANRs doit être fixe. Ne jamais déployer une application qui peut entrer dans cet état. Il est extrêmement impoli.
Vous pouvez utiliser Google analytics et le Play Store pour surveiller ces dans le déploiement. Vous ne voulez pas en colère les utilisateurs en donnant seule étoile de l'ANR examens après avoir à redémarrer en raison de votre zombie application. Très mauvaise.
Rappelez-vous que Android est un Linux: le traiter comme un vrai OS, et le respect de l'application du cycle de vie, sinon vous doit faire face à la redoutable Apocalypse Zombie.
PS: Si vous n'aimez pas le Zombie analogie, comment à propos de Fantasia?
Voir photo:
1. Cliquez sur DDMS;
2. Sélectionnez l'application en cours;
3. Cliquez sur "Stop"