Ich kann keine Option zum Stoppen eines laufenden Programms finden (ob im Debug- oder Release-Modus).
Im Moment stoppe ich das Programm (Rückgabe der Steuerung an Eclipse), indem ich einfach den Emulator schließe.
Gibt es einen besseren Weg, dies zu tun? So, dass ich den Emulator nicht schließen (und neu starten) muss?
android
eclipse
android-emulator
Android Eve
quelle
quelle
RemoteException sending setActive(false) notification
im logCat-AnsichtsfensterWenn Sie es mühsam finden, zwischen den Perspektiven zu wechseln, um das Programm zu stoppen (wie ich), können Sie die Gerätefenster in Ihrer aktuellen Perspektive anzeigen, indem Sie auswählen
quelle
Beachten Sie, dass Programme unter Android im Allgemeinen nur dann "gestoppt" werden, wenn Sie () beenden oder das System sie zerstört, wenn Speicher benötigt wird. Warum überhaupt aufhören? Sie müssen beispielsweise nicht anhalten, um das Problem zu beheben, neu zu installieren oder erneut zu testen.
quelle
Wählen Sie in der Perspektive "Debuggen" unter "Debuggen" (wo sich die Liste der aktiven Threads befindet) das Stammverzeichnis der Anwendung aus und klicken Sie auf die Schaltfläche Stopp.
quelle
Ich arbeite für mich.
Windows -> Perspektive öffnen -> Andere ... -> DDMS
Um zur normalen Ansicht zurückzukehren, müssen Sie nur die Java-Schaltfläche oben rechts drücken. Sie können dies auch tun, indem Sie Folgendes drücken: Windows -> Perspektive öffnen -> Andere ... -> Java
quelle
Diese Antwort bezieht sich nicht auf Eclipse. Da diese Frage jedoch in einer Google-Suche zum Stoppen eines laufenden Android-Programms auftaucht, möchte ich eine Befehlszeilenmethode anbieten. Führen
adb shell
Sie die PID des Prozesses aus, mit dem Sie den Vorgang beenden möchten.ps
Meine war beispielsweise:u0_a46 2097 37 175520 19912 ffffffff 40037ebc S net.unternet.bleah.blarg
Also dann einfach
kill 2097
und du solltest den Hauptbildschirm wieder sehen.quelle
Fügen Sie Ihrem Code einen Haltepunkt hinzu, an dem Sie anhalten möchten, und führen Sie ihn dann im Debug-Modus aus, indem Sie F11 drücken.
quelle
Abbildung 1 - Bei der Untersuchung dieser Antwort wurden viele Zombies getötet
Das Beenden eines Java VM-Prozesses für Android-Anwendungen auf Betriebssystemebene wird nicht empfohlen. Leider ist dies genau das, was das Eclipse-Gerätefenster "stop" tut, ebenso wie System.exit () und der Shell-Befehl "kill".
Dies untergräbt die normalen Methoden des App-Lebenszyklus wie onStop (), onDestroy () und finalize ().
Viele Apps erfordern diese Methoden für ein ordnungsgemäßes Beenden (z. B. wenn sie Systemobjekte wie Sensor, MediaPlayer, Equalizer, Visualizer usw. verwenden).
Diese Systemobjekte hängen mit Zombie-Todesgriffen auf Systemressourcen herum, wenn release () während dieser Lebenszyklusmethoden nicht explizit aufgerufen wird. Siehe Abb. 1 oben. Dies kann einen Neustart einer App verhindern und sogar einen Neustart erfordern. Das ist der unanständige Aspekt.
Die einzige Lösung besteht darin, sicherzustellen, dass Sie Ihre App immer sauber beenden, indem Sie onStop () oder onDestroy () aufrufen oder zumindest finalize (). Der Debugger tut dies ebenso wie das Betriebssystem beim Herunterfahren.
Sie können Ihre App so einstellen, dass SIG_HUP-Ereignisse abgefangen werden, um ein ordnungsgemäßes Beenden der Befehlszeile zu erzwingen.
Das einzige Mal, dass Sie die App-VM beenden würden, ist der ANR-Status (bereits ein Zombie). ANRs müssen behoben werden. Stellen Sie niemals eine App bereit, die in diesen Status wechseln kann. Es ist extrem unhöflich.
Sie können Google Analytics und den Play Store verwenden, um diese bei der Bereitstellung zu überwachen. Sie möchten nicht, dass verärgerte Benutzer nach dem Neustart aufgrund Ihrer Zombie-Anwendung ANR-Bewertungen mit einem Stern abgeben. Sehr schlecht.
Denken Sie daran, dass Android Linux ist: Behandeln Sie es wie ein echtes Betriebssystem und respektieren Sie den App-Lebenszyklus, sonst werden Sie sicherlich der gefürchteten Zombie-Apokalypse gegenüberstehen.
PS: Wenn dir die Zombie-Analogie nicht gefällt, wie wäre es dann mit Fantasia?
quelle
Siehe Bild: 1. Klicken Sie auf DDMS. 2. Aktuelle App auswählen; 3. Klicken Sie auf "Stop"
quelle