Eine Sache verblüfft mich. Es sieht so aus, als ob ich ein Programm auf Android verwende und die "Home" -Taste drücke. Ich sehe den Startbildschirm und kann das Programm erneut ausführen und das Programm im gleichen Zustand wie zuvor anzeigen. nur ausgesetzt und dann wieder aufgenommen.
Dies scheint jedoch bei Air Control-Spielen nicht immer der Fall zu sein. Manchmal, wenn ich Air Control spiele und "home" drücke und Air Control später erneut ausführe, wird es angehalten (als ob ich die "Pause" -Taste gedrückt hätte) und ich kann das Spiel fortsetzen. Manchmal führt das auch dazu, dass Air Control das Spiel fallen lässt und neu startet.
Es sieht also so aus, als würde ich etwas nicht verstehen.
Was ist hier los? Was passiert mit einem Programm, wenn "home" gedrückt wird? Läuft es weiter oder was macht es?
quelle
Antworten:
Durch Drücken von Homewechseln Sie von der App zum Startbildschirm, während Ihre App im Hintergrund ausgeführt wird. Dies ähnelt dem Wechseln zwischen Fenstern auf einem Windows-PC.
Wenn auf Ihrem Telefon nur noch wenige Ressourcen wie Speicherplatz zur Verfügung stehen, werden Apps geschlossen, die im Hintergrund ausgeführt werden, sodass auf Ihrem Telefon genügend Ressourcen für die aktuellen Aufgaben vorhanden sind. Spiele gehören häufig zu den ersten Apps, die das Telefon "tötet", um Ressourcen zu sparen, da sie häufig viel mehr Speicher und CPU als andere Apps belegen. Aus diesem Grund wird Ihr Spiel manchmal immer noch angehalten, und manchmal hat Android es für Sie geschlossen.
Über die BackSchaltfläche können Apps geschlossen werden, sodass sie tatsächlich geschlossen werden.
Siehe auch Was ist der richtige Weg, um Apps in Android zu schließen?
quelle
Das Android-Entwicklungsdokument Tasks and Back Stack deckt dies ziemlich gut ab. Ein relevanter Auszug:
Zusammenfassung : Die Aufgabe wird in den Hintergrund verschoben, wenn Sie auf drücken
Home
und sich im Speicher befinden, ohne wirklich etwas zu tun und ihren Status beizubehalten. Dies bedeutet, dass Sie (im Allgemeinen) zu der Aufgabe zurückkehren können und sie dort fortsetzen, wo sie aufgehört hat. Das Android-System kann und wird jedoch Hintergrundaufgaben beenden, wenn Speicherplatz benötigt wird. Wann und ob dies geschieht, liegt ganz im Ermessen des Systems und ist wahrscheinlich der Grund, warum Sie bei der Wiederaufnahme ein inkonsistentes Verhalten feststellen.Wenn die Aufgabe vom System zerstört wird, muss sie beim nächsten Start neu erstellt werden. Wenn der Autor der Anwendung keine Maßnahmen ergriffen hat, um den Status der Anwendung während des Zerstörungsprozesses zu speichern, geht dieser verloren (und das Speichern des exakten Status in Dingen wie Spielen ist ziemlich unpraktisch).
Ein weiteres gutes (aber auch ausführliches) Dokument ist das, das den Aktivitätslebenszyklus abdeckt (es gibt ein schönes Flussdiagramm, wenn Sie ein wenig nach unten scrollen).
quelle
Durch Drücken der Home-Taste kann der Benutzer eine neue Aufgabe starten, indem er den Startbildschirm anzeigt. Alle aktiven Tasks (und damit Activities inkl. Ihres "Air Control" -Beispiels) rufen ihre
onPause()
Methode auf.Es liegt an der App (und deren Aktivität), den exakten vorherigen Status wiederherzustellen, wenn er wieder sichtbar wird. Es ist auch möglich, dass der Apps-Prozess beendet wird, während die Aktivität im Hintergrund ausgeführt wird, dies sollte jedoch die Benutzererfahrung nicht beeinträchtigen. Der Benutzer sollte keinen Unterschied feststellen können, ob eine Aktivität gerade angehalten oder auch beendet wurde. Dies könnte das unterschiedliche Verhalten von Air Control erklären, was ein Hinweis auf eine fehlerhafte Implementierung des Android-Lebenszyklusmanagements sein könnte.
quelle
destroy()
die entsprechenden App-Komponenten.onStop
Methode aufgerufen. Ein getöteter Prozess bedeutet nicht, dass die Aktivität ihreonDestroyed
Methode erhält , obwohl sie in der Tat ähnlich ist. "Beenden" eines Aktivitätsprozesses bedeutet, dass die VM aus dem RAM entfernt wird. Für mich scheint dies (Android tötet es) die Benutzererfahrung zu beeinträchtigen.Mein Ruf auf dieser Seite ist immer noch zu niedrig, um eine Stimme abzugeben. Ich antworte daher auf die Antwort von Flow. Ich stoße in einer meiner Apps immer wieder auf dieses Problem. Ich habe verschiedene Spinner-Steuerelemente und Sie müssen ihren Status explizit in onPause () speichern und dann in onResume () wiederherstellen - Android merkt sich ihren Status nicht automatisch.
Eine weitere Komplikation ist, dass Android manchmal die Funktion onCreate () einer App aufruft, wenn Sie nur erwarten, dass sie onResume () aufruft.
Daher ist Ihr Problem mit Air Control (oder einer anderen App) für diese App spezifisch und Sie sollten das Verhalten dem Entwickler zur Korrektur melden. Die meisten Apps haben eine Kontakt-E-Mail im Market.
Übrigens, wenn Sie den Lebenszyklus einer App verstehen möchten, empfehle ich Kapitel 2 von Ed Burnette's Hello, Android, insbesondere Abbildung 2.3.
quelle
Home-Taste gedrückt, wenn in einer App:
Die meisten Apps speichern ihren Status (alle Daten, die benötigt werden, um sich selbst bei der Wiederaufnahme zu konsistent zu halten), und das Gerät wechselt zur Launcher-App.
Home-Taste Wird auf den Startbildschirmen gedrückt:
Dies kann von vielen Launchern von Drittanbietern konfiguriert werden. Viele von ihnen kehren jedoch standardmäßig zum "Haupt" -Startbildschirm zurück (der Standard-Starter führt dies aus).
Worüber könnte Ihr Freund besorgt sein:
Das Wechseln von Apps kann speicherintensiv sein und dazu führen, dass mehrere Schreibvorgänge auf der Festplatte die Daten speichern. Dies verbraucht Batterie; In der Regel ist dies jedoch nicht die Hauptursache für die Batterieentladung der Geräte (die Betriebssysteme sind für diese Funktionen optimiert).
Einige Anwendungen werden weiterhin als Hintergrundanwendung ausgeführt. Wenn Sie also die Home-Taste drücken, werden sie nicht beendet (z. B. wird Google Play Music auch nach dem Drücken der Home-Taste wiedergegeben).
Ihr Freund könnte besorgt sein, dass Sie das Programm durch Drücken der Home-Taste nicht beendet haben und es daher weiterhin ausgeführt wird. Android entlädt diese Anwendungen nach Bedarf.
Sie und Ihr Freund sollten sich mehr mit dem Display beschäftigen, das die meiste Energie verbraucht.
quelle