Startseite » wie man » Was passiert genau, wenn Sie eine Android-App aus der Liste der zuletzt verwendeten Apps streichen?

    Was passiert genau, wenn Sie eine Android-App aus der Liste der zuletzt verwendeten Apps streichen?

    Was passiert genau mit der Anwendung und den Daten, wenn Sie eine App von der Liste der derzeit laufenden Android-Apps entfernen? Lesen Sie weiter, während wir nachforschen.

    Die heutige Question & Answer-Sitzung kommt dank Android Enthusiast zu uns - einer Unterteilung von Stack Exchange, einer Community-basierten Gruppe von Q & A-Websites.

    Die Frage

    Leser von Android-Enthusiasten Eldarerathis ist neugierig auf die App-Swipe-Funktion, mit der Sie Ihre Liste der laufenden Apps über den Home-Button aufrufen und nach rechts ziehen können, vermutlich um sie zu schließen:

    Die jüngste Liste der Apps in Ice Cream Sandwich fügte die Möglichkeit hinzu, Apps aus der Liste zu streichen, wodurch sie endgültig verworfen wurden (und soweit ich weiß, ist dies eine Vanilla-Funktion und keine CM / Custom ROM-Funktion). Die Dokumentation und die Plattform-Highlights scheinen nicht die Funktionsweise dieser Funktionalität unter der Haube abzudecken, aber ich bin neugierig, was das System eigentlich tut.

    Um meine Neugier zu erhöhen, entschied ich mich für einen kurzen Test: Ich habe Music auf einer CM9-Installation gestartet und bin dann aus dem Programm verschwunden. Ich habe dann die Liste der letzten Apps durchgesehen und festgestellt, dass sie tatsächlich vorhanden war (und im richtigen Zustand, basierend auf der Miniaturansicht). Ich ging dann hinein Einstellungen-> Anwendungen Die Musik-App wurde angehalten, aber die Musik-App wurde immer noch in der letzten Liste aufgeführt. Dies lässt vermuten, dass sie nicht mit Prozessen im Hintergrund verbunden ist.

    Da mir bewusst wurde, dass Musik eine schlechte Wahl gewesen ist, habe ich auch die USA Today App getestet. Dies zeigte im Wesentlichen dasselbe Verhalten und es schien, als müsste es nach dem Kraftstopp (Neustart) einen Neustart durchführen (was sinnvoll ist), obwohl das Miniaturbild in der Liste der letzten Apps dies nicht widerspiegelt (zwischengespeichert, schätze ich?).

    Was passiert also eigentlich auf Betriebssystemebene, wenn Sie eine App aus der Liste der letzten Einträge entfernen? Löscht es einfach die Daten der App aus dem RAM und sammelt sie durch den Müll, wodurch der gespeicherte Zustand zerstört wird?

    Was genau passiert, wenn Sie die App von der Liste streichen?

    Die Antworten

    Austin Mills, ein Entwickler von Android-Enthusiasten, bietet einige Einblicke:

    Das Herausnehmen von Apps aus der Liste der letzten Apps ist Vanille und ja, nicht gut dokumentiert. Dies war das Thema einer anständigen Diskussionsrunde in verschiedenen Android-Foren… Der Konsens scheint hier in einigen Kommentaren am besten beschrieben zu werden: Das Verhalten ist ähnlich, aber nicht genau dasselbe wie das Schließen einer App - im Allgemeinen (für Apps das Definieren Sie nicht das explizite Zurück-Button-Handling. Es ist das Gleiche, als würden Sie innerhalb einer Anwendung so oft zurückschlagen, dass Sie sie verlassen.

    Der Link enthält einige Details zu den Besonderheiten, aber insgesamt kann man sich vorstellen, dass er die Anwendung beendet.

    Ich glaube, dass speziell für die Musik-App ein Dienst gestartet wird. Während die Aufgabe selbst (die Musik-App / Benutzeroberfläche) geschlossen wird, wird der Dienst jedoch weiterhin im Hintergrund ausgeführt, sodass Ihre Musik nicht plötzlich aufhört, nur weil die Aufgabe beendet ist wurde aus Gründen der Speicherverwaltung gelöscht. Das hat möglicherweise das beeinflusst, was Sie gesehen haben.

    Dann beteiligte sich Eldarerathis am Frage-und-Antwort-Kreis des Lebens und recherchierte selbst, um die Antwort zu vervollständigen:

    Ich habe anscheinend die magischen Suchbegriffe gefunden, die zu Erklärungen von Google-Mitarbeitern geführt haben. Ich habe insbesondere ein paar verschiedene Orte gefunden, an denen Dianne Hackborn erklärt, was passiert, wenn Sie etwas aus der aktuellen Liste streichen. Der erste ist ein Kommentar zu einem ihrer Google+ Beiträge:

    Dies geschieht insbesondere, wenn Sie eine kürzlich ausgeführte Aufgabe wegwischen: (1) beendet alle Hintergrund- oder leeren Prozesse der Anwendung (siehe hier, was dies bedeutet), und (2) verwendet die neue API, um die Dienste mitzuteilen Die Anwendung über die Aufgabe wird so entfernt, dass sie das tun kann, was sie für angemessen hält.

    Sie notiert auch in einem Blogkommentar:

    Durch das Entfernen eines Eintrags aus kürzlich durchgeführten Aufgaben werden alle für den Prozess vorhandenen Hintergrundprozesse beendet. Dienste werden nicht direkt angehalten. Es gibt jedoch eine API, mit der sie herausfinden können, dass die Aufgabe entfernt wurde, um zu entscheiden, ob sie dies beenden möchten. Dies bedeutet, dass durch das Entfernen der letzten Aufgabe einer E-Mail-App die Suche nach E-Mails nicht unterbrochen wird.

    Wenn Sie eine App wirklich vollständig anhalten möchten, können Sie lange auf die letzten Aufgaben drücken, um zu den App-Informationen zu gelangen und dort die Zwangsstopp-Funktion zu aktivieren. Erzwungener Stopp ist ein vollständiger Abbruch der App - alle Prozesse werden abgebrochen, alle Dienste angehalten, alle Benachrichtigungen entfernt, alle Alarme entfernt usw. Die App darf nicht erneut gestartet werden, wenn dies ausdrücklich angefordert wird.

    Es sieht also so aus, als ob die Zusammenfassung so aussieht, dass das Auswischen einer App aus der Liste zuerst alle Hintergrundprozesse für die App beendet und dann verwendet onTaskRemoved um die App zu benachrichtigen, dass die Hintergrundaufgabe entfernt wurde. An diesem Punkt sieht es so aus, als ob es an der App liegt zu entscheiden, was passiert, also denke ich da technisch ist nicht eine schnelle und schnelle Regel darüber, was mit der App über diesen Punkt hinaus geschieht.


    Haben Sie der Erklärung etwas hinzuzufügen? Ton aus in den Kommentaren. Möchten Sie mehr Antworten von anderen technisch versierten Stack Exchange-Benutzern lesen? Hier geht es zum vollständigen Diskussionsthread.