Anzeige schließen

Es gibt immer noch viele Leute, die nicht wissen, wie Multitasking in iOS funktioniert. Zunächst muss jedoch darauf hingewiesen werden, dass es sich hierbei nicht um echtes Multitasking handelt, sondern um eine sehr smarte Lösung, die weder das System noch den Benutzer belastet.

Man hört oft den Aberglauben, dass Apps, die in iOS im Hintergrund laufen, den Arbeitsspeicher füllen, was zu einer Verlangsamung des Systems und einer verkürzten Akkulaufzeit führt, sodass der Benutzer sie manuell ausschalten sollte. Die Multitasking-Leiste enthält eigentlich keine Liste aller laufenden Hintergrundprozesse, sondern nur die zuletzt gestarteten Anwendungen. Der Benutzer muss sich also bis auf wenige Ausnahmen keine Gedanken über im Hintergrund laufende Prozesse machen. Wenn Sie den Home-Button drücken, geht die Anwendung normalerweise in den Ruhezustand oder wird geschlossen, sodass sie weder den Prozessor noch den Akku mehr belastet und bei Bedarf den nötigen Speicher freigibt.

Es handelt sich also nicht um vollwertiges Multitasking, wenn Dutzende Prozesse laufen. Es läuft immer nur eine Anwendung im Vordergrund, die bei Bedarf angehalten oder ganz ausgeschaltet wird. Lediglich einige Nebenprozesse laufen im Hintergrund. Aus diesem Grund wird es unter iOS selten zu einem Anwendungsabsturz kommen, da Android beispielsweise mit laufenden Anwendungen überlastet ist, um die sich der Benutzer kümmern muss. Dies macht einerseits die Arbeit mit dem Gerät unangenehm, andererseits führt es beispielsweise zu langsamen Startvorgängen und Übergängen zwischen Anwendungen.

Laufzeittyp der Anwendung

Die Anwendung auf Ihrem iOS-Gerät befindet sich in einem dieser fünf Zustände:

  • Läuft: Die Anwendung wird gestartet und läuft im Vordergrund
  • Hintergrund: es läuft immer noch, läuft aber im Hintergrund (wir können andere Anwendungen verwenden)
  • Ausgesetzt: Benutzt immer noch RAM, läuft aber nicht
  • Inaktiv: die Anwendung läuft, aber indirekte Befehle (z. B. wenn Sie das Gerät sperren, während die Anwendung läuft)
  • Nicht laufen: Die Anwendung wurde beendet oder nicht gestartet

Die Verwirrung entsteht, wenn die App in den Hintergrund tritt, um nicht zu stören. Wenn Sie die Home-Taste drücken oder die Anwendung mit der Geste schließen (iPad), tritt die Anwendung in den Hintergrund. Die meisten Apps werden innerhalb von Sekunden angehalten (Sie werden im RAM des iDevice gespeichert, sodass sie schnell gestartet werden können, sie belasten den Prozessor nicht so stark und schonen so die Akkulaufzeit). Sie könnten denken, dass dies der Fall ist, wenn eine App weiterhin Speicher verbraucht um es manuell zu löschen, um es freizugeben. Aber Sie müssen das nicht tun, denn iOS erledigt das für Sie. Wenn eine anspruchsvolle Anwendung im Hintergrund angehalten wird, beispielsweise ein Spiel, das viel RAM verbraucht, entfernt iOS sie bei Bedarf automatisch aus dem Speicher und Sie können sie neu starten, indem Sie auf das Anwendungssymbol tippen.

Keiner dieser Zustände wird in der Multitasking-Leiste angezeigt. Das Panel zeigt nur eine Liste der zuletzt gestarteten Apps an, unabhängig davon, ob die App gestoppt, angehalten oder im Hintergrund ausgeführt wird. Möglicherweise stellen Sie auch fest, dass die aktuell ausgeführte Anwendung nicht im Multitasking-Bedienfeld angezeigt wird

Hintergrundaufgaben

Wenn Sie die Home-Taste drücken, wird die Anwendung normalerweise im Hintergrund ausgeführt. Wenn Sie sie nicht verwenden, wird sie automatisch innerhalb von fünf Sekunden angehalten. Wenn Sie beispielsweise einen Podcast herunterladen, wertet das System diesen als laufende Anwendung und verzögert den Abbruch um zehn Minuten. Spätestens nach zehn Minuten wird der Vorgang aus dem Speicher freigegeben. Kurz gesagt, Sie müssen sich keine Sorgen darüber machen, Ihren Download durch Drücken der Home-Taste zu unterbrechen, wenn der Download nicht länger als 10 Minuten dauert.

Läuft auf unbestimmte Zeit im Hintergrund

Bei Inaktivität beendet das System die Anwendung innerhalb von fünf Sekunden, bei Downloads verzögert sich die Beendigung um zehn Minuten. Es gibt jedoch eine kleine Anzahl von Anwendungen, die im Hintergrund ausgeführt werden müssen. Hier sind einige Beispiele für Apps, die in iOS 5 unbegrenzt im Hintergrund ausgeführt werden können:

  • Anwendungen, die Ton abspielen und für eine Weile unterbrochen werden müssen (Musik während eines Telefongesprächs pausieren usw.),
  • Anwendungen, die Ihren Standort verfolgen (Navigationssoftware),
  • Anwendungen, die VoIP-Anrufe empfangen, wenn Sie beispielsweise Skype verwenden, können Sie einen Anruf auch dann empfangen, wenn die Anwendung im Hintergrund läuft.
  • Automatische Downloads (z. B. Zeitungskiosk).

Alle Anwendungen sollten geschlossen werden, wenn sie keine Aufgabe mehr ausführen (z. B. Hintergrund-Downloads). Es gibt jedoch Ausnahmen, die kontinuierlich im Hintergrund laufen, wie zum Beispiel die native Mail-App. Wenn sie im Hintergrund ausgeführt werden, beanspruchen sie Speicher, CPU-Auslastung oder verkürzen die Akkulaufzeit

Apps, die auf unbestimmte Zeit im Hintergrund laufen dürfen, können während der Ausführung alles tun, was sie tun, von der Musikwiedergabe bis zum Herunterladen neuer Podcast-Episoden.

Wie ich bereits erwähnt habe, muss der Benutzer die im Hintergrund laufenden Apps nie schließen. Die einzige Ausnahme hiervon besteht, wenn eine im Hintergrund laufende App abstürzt oder nicht ordnungsgemäß aus dem Ruhezustand erwacht. Der Benutzer kann die Anwendungen dann manuell in der Multitasking-Leiste schließen, was jedoch selten vorkommt.

Im Allgemeinen müssen Sie also keine Hintergrundprozesse verwalten, da das System diese selbst erledigt. Deshalb ist iOS ein so frisches und schnelles System.

Aus der Sicht eines Entwicklers

Die Anwendung kann im Rahmen von Multitasking mit insgesamt sechs verschiedenen Zuständen reagieren:

1. applicationWillResignActive

In der Übersetzung bedeutet dieser Zustand, dass die Anwendung in Zukunft (in wenigen Millisekunden) als aktive Anwendung (d. h. als Anwendung im Vordergrund) zurücktritt. Dies geschieht beispielsweise, wenn während der Nutzung der Anwendung ein Anruf eingeht, diese Methode aber gleichzeitig auch diesen Zustand verursacht, bevor die Anwendung in den Hintergrund geht, sodass Sie diese Änderungen berücksichtigen müssen. Diese Methode eignet sich auch, um beispielsweise bei einem eingehenden Anruf alle ausgeführten Aktivitäten zu unterbrechen und bis zum Ende des Anrufs zu warten.

2. applicationDidEnterBackground

Der Status zeigt an, dass die Anwendung in den Hintergrund getreten ist. Entwickler sollten diese Methode verwenden, um alle Prozesse anzuhalten, die nicht unbedingt im Hintergrund ausgeführt werden müssen, und den Speicher von ungenutzten Daten und anderen Prozessen zu befreien, z. B. ablaufende Timer, das Löschen geladener Bilder aus dem Speicher, die nicht unbedingt benötigt werden, oder das Schließen Verbindungen mit Servern, es sei denn, es ist für die Anwendung von entscheidender Bedeutung, Verbindungen im Hintergrund herzustellen. Wenn die Methode in einer Anwendung aufgerufen wird, sollte sie im Wesentlichen dazu verwendet werden, die Anwendung vollständig anzuhalten, wenn ein Teil davon nicht für die Ausführung im Hintergrund erforderlich ist.

3. applicationWillEnterForeground

Dieser Zustand ist das Gegenteil des ersten Zustands, in dem die Anwendung in den aktiven Zustand übergeht. Der Status bedeutet einfach, dass die schlafende App innerhalb der nächsten paar Millisekunden aus dem Hintergrund fortfährt und im Vordergrund erscheint. Entwickler sollten diese Methode verwenden, um alle Prozesse fortzusetzen, die inaktiv waren, während die Anwendung im Hintergrund lief. Verbindungen zu Servern sollten wiederhergestellt, Timer zurückgesetzt, Bilder und Daten in den Speicher geladen werden und andere notwendige Prozesse können wieder aufgenommen werden, bevor der Benutzer die geladene Anwendung wieder sieht.

4. applicationDidBecomeActive

Der Status zeigt an, dass die Anwendung gerade aktiv geworden ist, nachdem sie in den Vordergrund wiederhergestellt wurde. Dies ist eine Methode, mit der zusätzliche Anpassungen an der Benutzeroberfläche vorgenommen oder die Benutzeroberfläche in ihren ursprünglichen Zustand zurückversetzt werden können usw. Dies geschieht tatsächlich in dem Moment, in dem der Benutzer die Anwendung bereits auf dem Display sieht, es ist also notwendig, dies zu tun Bestimmen Sie sorgfältig, was in der Methode dieser und der vorherigen Methode passiert. Sie werden nacheinander mit einem Unterschied von einigen Millisekunden aufgerufen.

5. applicationWillTerminate

Dieser Zustand tritt einige Millisekunden vor dem Beenden der Anwendung ein, also bevor die Anwendung tatsächlich beendet wird. Entweder manuell beim Multitasking oder beim Ausschalten des Geräts. Die Methode soll genutzt werden, um verarbeitete Daten zu speichern, alle Aktivitäten zu beenden und nicht mehr benötigte Daten zu löschen.

6. applicationDidReceiveMemoryWarning

Es ist der letzte Zustand, der am meisten diskutiert wird. Es ist dafür verantwortlich, die Anwendung bei Bedarf aus dem iOS-Speicher zu entfernen, wenn sie Systemressourcen unnötig beansprucht. Ich weiß nicht genau, was iOS mit Hintergrund-Apps macht, aber wenn es eine App benötigt, um Ressourcen für andere Prozesse freizugeben, fordert es sie mit einer Speicherwarnung auf, alle verfügbaren Ressourcen freizugeben. Daher wird diese Methode in der Anwendung aufgerufen. Entwickler sollten es so implementieren, dass die Anwendung den zugewiesenen Speicher aufgibt, alle laufenden Prozesse speichert, unnötige Daten aus dem Speicher löscht und ansonsten ausreichend Speicher freigibt. Es ist wahr, dass viele Entwickler, selbst Anfänger, nicht über solche Dinge nachdenken oder sie nicht verstehen, und dann kann es passieren, dass ihre Anwendung die Akkulaufzeit gefährdet und/oder sogar im Hintergrund unnötig Systemressourcen verbraucht.

Urteil

Diese sechs Zustände und die damit verbundenen Methoden bilden den Hintergrund allen „Multitaskings“ in iOS. Es ist ein großartiges System, solange Entwickler nicht die Tatsache außer Acht lassen, dass sie dafür verantwortlich sein müssen, was die Anwendung auf den Geräten ihrer Benutzer ausgibt, wenn sie minimiert werden oder Warnungen vom System erhalten usw.

Source: Macworld.com

Autoren: Jakub Požárek, Martin Doubek (ArnieX)

 
Haben auch Sie ein Problem zu lösen? Sie benötigen Beratung oder finden vielleicht die passende Anwendung? Zögern Sie nicht, uns über das Formular im Abschnitt zu kontaktieren Beratung, das nächste Mal werden wir Ihre Frage beantworten.

.