9Aug
Wenn Sie eine App von Ihrer aktuell laufenden Android-App-Liste streichen, was passiert dann genau mit der Anwendung und den Daten? Lesen Sie weiter, während wir untersuchen.
Die heutige Frage &Die Antwortsitzung kommt von Android Enthusiast, einer Untergruppe von Stack Exchange, einer Community-gesteuerten Gruppierung von Q & A-Websites.
Die Frage
Android Enthusiast Leser Eldararathis ist neugierig auf die App-Swipe-Funktionalität, mit der Sie Ihre Liste der laufenden Anwendungen über die Home-Taste hochziehen und dann nach rechts wischen können, vermutlich um sie zu schließen:
Die neueste apps list inIce Cream Sandwich hat die Möglichkeit hinzugefügt, Apps aus der Liste zu streichen, wodurch sie permanent gelöscht werden( und soweit ich weiß, dass dies eine Vanilla-Funktion ist, keine CM / benutzerdefinierte ROM).Die Dokumentation und die Plattformhighlights scheinen die Funktion dieser Funktionalität nicht zu verdecken, aber ich bin gespannt, was das System tatsächlich macht.
Um meine Neugier zu steigern, entschied ich mich für einen schnellen Test: Ich startete Music auf einer CM9-Installation und zog mich danach zurück. Ich überprüfte dann die Liste der letzten Apps und sah, dass sie tatsächlich dort war( und im richtigen Zustand, basierend auf dem Thumbnail).Ich ging dann in Einstellungen- & gt; Anwendungen und erzwang die Musik-App, aber es wurde immer noch in der jüngsten Liste aufgeführt, was mich glauben lässt, dass es nicht mit Prozessen verbunden ist, die im Hintergrund bleiben.
Da Musik jetzt eine schlechte Wahl war, habe ich auch mit der USA Today App getestet. Dies zeigte im Grunde das gleiche Verhalten und es sah so aus, als ob es nach dem Kraftstopp "neu gestartet" werden müsste( was sinnvoll ist), obwohl das Thumbnail in der letzten Apps-Liste dies nicht widerspiegelte( im Cache, vermute ich?).
Was passiert also tatsächlich auf Betriebssystemebene, wenn Sie eine App aus der aktuellen Liste streichen? Löscht es einfach die Daten der App aus dem RAM und Müll sammelt sie und zerstört ihren gespeicherten Zustand?
Was genau passiert, wenn Sie die App von der Liste streichen?
Die Antworten
Android Enthusiast Mitwirkenden Austin Mills bietet einige Einblicke:
Apps aus der Liste der letzten Apps Swiping ist Vanille, und ja, nicht gut dokumentiert. Dies war das Thema einer anständigen Menge an Diskussionen 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, dieDefinieren Sie keine explizite Zurück-Schaltflächenbehandlung. Es ist dasselbe, als wenn Sie innerhalb einer Anwendung, die Sie verlassen, häufig genug zurückschlagen.
Der Link enthält einige weitere Details zu den Details, aber insgesamt kann man davon ausgehen, dass er die Anwendung beendet.
Spezifisch für die Musik-App, ich glaube, es startet einen Dienst, also während die Aufgabe selbst( die Musik-App / UI) geschlossen werden kann, läuft der Dienst im Hintergrund weiter, so dass Ihre Musik nicht plötzlich plötzlich stoppt, weil derTask wurde aus Gründen der Speicherverwaltung gelöscht. Das könnte das beeinflusst haben, was du gesehen hast.
Dann, als Eldarerathis am Frage-Antwort-Kreis des Lebens teilnahm, kam er mit eigenen Recherchen zurück, um die Antwort abzurunden:
Ich habe anscheinend die magischen Suchbegriffe gefunden, die zu einigen Erklärungen von Google-Mitarbeitern geführt haben. Konkret habe ich ein paar verschiedene Orte gefunden, an denen Dianne Hackborn erklärt, was passiert, wenn man etwas aus der aktuellen Liste streicht. Der erste ist ein Kommentar zu einem ihrer Google+ Beiträge:
[W] passiert besonders, wenn du eine letzte Aufgabe wegwischst, ist es:( 1) tötet Hintergrund oder leere Prozesse der Anwendung( siehe hier für was das bedeutet),und( 2) verwendet die neue API, um alle Dienste der Anwendung über die zu entfernende Aufgabe zu informieren, so dass sie alles tun kann, was sie für angemessen hält.
Sie notiert auch in einem Blogkommentar:
Tatsächlich werden durch das Entfernen eines Eintrags in den letzten Aufgaben alle Hintergrundprozesse gelöscht, die für den Prozess existieren. Es wird nicht direkt dazu führen, dass Dienste gestoppt werden, es gibt jedoch eine API, mit der sie herausfinden können, ob die Aufgabe entfernt wurde, um zu entscheiden, ob dies bedeutet, dass sie aufhören sollten. Dies bedeutet, dass das Entfernen der Nachricht nach der letzten Aufgabe einer E-Mail-Anwendung nicht dazu führt, dass sie nicht mehr nach E-Mails sucht.
Wenn Sie eine App wirklich vollständig anhalten möchten, können Sie lange auf die letzten Aufgaben drücken, um zur App-Info zu gelangen, und dort auf "Kraft stoppen" drücken."Force-Stop" ist ein vollständiger Abbruch der App - alle Prozesse werden beendet, alle Dienste werden gestoppt, alle Benachrichtigungen werden entfernt, alle Alarme werden entfernt usw. Die App kann nicht erneut gestartet werden, bis sie explizit angefordert wird.
Es sieht also so aus, als ob das Wischen einer App aus der Liste zuerst alle Hintergrundprozesse für die App beendet und dann onTaskRemoved verwendet, um die App darüber zu benachrichtigen, dass die Hintergrundaufgabe entfernt wurde. An diesem Punkt sieht es so aus, als ob es Sache der App ist, zu entscheiden, was passiert, also denke ich, dass nicht ist, eine harte Regel darüber, was mit der App passiert, darüber hinaus.
Haben Sie etwas zur Erklärung hinzuzufügen? Ton in den Kommentaren ab. Möchten Sie mehr Antworten von anderen technisch versierten Stack Exchange Benutzern lesen? Sehen Sie sich den vollständigen Diskussionsfaden hier an.