Wir alle kennen die Lektion „Multitasking = die Fähigkeit, mehrere Prozesse gleichzeitig auszuführen“. Wir verwenden es in unseren Computern, ohne uns seiner Anwesenheit besonders bewusst zu sein. Der Wechsel zwischen Anwendungen oder Fenstern einer Anwendung erfolgt (für uns) in Echtzeit und wir setzen diese Fähigkeit des Betriebssystems als selbstverständlich voraus.
Aufgabe anders
Das Betriebssystem weist den Prozessor in kleinen Zeitintervallen allen Anwendungen zu. Diese Zeiträume sind so klein, dass wir sie nicht wahrnehmen können, sodass es den Anschein hat, als würden alle Anwendungen gleichzeitig den Prozessor nutzen. Das denken wir vielleicht Multitasking in iOS 4 funktioniert genau gleich. Es ist nicht so. Der Hauptgrund ist natürlich die Akkukapazität. Wenn wirklich alle Anwendungen im Hintergrund laufen würden, müssten wir wahrscheinlich in ein paar Stunden nach einem Socket suchen.
Die meisten mit iOS 4 kompatiblen Anwendungen werden nach dem Drücken der Home-Taste in den „Suspendierungsmodus“ oder in den Ruhezustand versetzt. Eine Analogie könnte das Schließen des Deckels eines Laptops sein, der sofort in den Ruhemodus wechselt. Nach dem Öffnen des Deckels wacht der Laptop auf und alles ist im exakt gleichen Zustand wie vor dem Schließen des Deckels. Darüber hinaus gibt es Anwendungen, bei denen das Drücken der Home-Taste zum Beenden führt. Und damit meinen wir einen echten Abschied. Entwickler haben die Wahl, welche dieser Methoden sie verwenden möchten.
Aber es gibt noch eine andere Kategorie von Anwendungen. Dies sind die Apps, die wirklich im Hintergrund laufen, auch wenn Sie auf Ihrem iDevice etwas völlig anderes tun. Skype ist ein gutes Beispiel, da es eine ständige Internetverbindung benötigt. Weitere Beispiele wären Apps, die im Hintergrund Musik abspielen (Pandora) oder Apps, die eine ständige Nutzung von GPS erfordern. Ja, diese Apps entladen Ihren Akku, selbst wenn sie im Hintergrund ausgeführt werden.
Schlafen oder abschießen?
Bestimmte mit iOS 4 kompatible Anwendungen, die nach dem Drücken der Home-Taste in den Ruhezustand versetzt (in den „Suspendierungsmodus“ versetzt) werden sollten, laufen im Hintergrund weiter. Apple gab den Entwicklern genau zehn Minuten Zeit, damit die App ihre Aufgabe erledigen konnte, was auch immer es war. Nehmen wir an, Sie laden eine Datei in GoodReader herunter. Plötzlich möchte Sie jemand anrufen und Sie müssen diesen wichtigen Anruf nur noch annehmen. Dauerte der Anruf nicht länger als zehn Minuten, kehren Sie zur GoodReader-Anwendung zurück. Die Datei wurde möglicherweise bereits heruntergeladen oder wird noch heruntergeladen. Was passiert, wenn der Anruf länger als zehn Minuten dauert? Die Anwendung, in unserem Fall GoodReader, muss ihre Aktivität stoppen und iOS mitteilen, dass sie in den Ruhezustand versetzt werden kann. Wenn sie es nicht tut, wird sie von iOS selbst gnadenlos gekündigt.
Jetzt kennen Sie den Unterschied zwischen „mobilem“ und „Desktop“-Multitasking. Während flüssiger und schneller Wechsel zwischen Anwendungen für einen Computer wichtig ist, ist die Akkulaufzeit bei mobilen Geräten immer das Wichtigste. Auch Multitasking musste an diesen Umstand angepasst werden. Wenn Sie also nach dem Lesen dieses Artikels zweimal die Home-Taste drücken, sehen Sie nicht mehr die „Leiste der im Hintergrund laufenden Anwendungen“, sondern im Wesentlichen nur noch die „Liste der zuletzt verwendeten Anwendungen“.
Autor: Daniel HruškaSource: onemoretap.com
Hmm, interessant :) Ich dachte immer, dass es immer ähnlich ist, wie es unter Unix gemacht werden kann. Da der Anwendung keine CPU-Zeit zugewiesen wurde und der Prozess nur im Speicher liegt, wurden alle Ressourcen zugewiesen. Daher musste ich zweimal die Home-Taste drücken und die Anwendung sofort stoppen, um sie zu löschen. Bedeutet das also, dass die App schon vor langer Zeit (nach 10 Minuten) geschlossen wurde, selbst wenn sich im unteren, ausgeblendeten Blatt ein Anwendungssymbol befindet?
In der unteren Liste werden lediglich die zuletzt geöffneten Anwendungen angezeigt, wobei einige davon noch laufen können, andere ausgesetzt sind und einige vollständig beendet werden. Das manuelle Entfernen der Anwendung aus der Liste hat den „Nebeneffekt“, dass sie beendet wird, wenn sie gerade ausgeführt wird (oder angehalten wird).
Die Anwendung muss sich über diese 10 zusätzlichen Minuten informieren und es kann nicht garantiert werden, dass sie diese erhält.
Nun ja, das hat meine Besessenheit, die Anwendung aus der Liste zu schließen, nicht beseitigt (was, wenn sie versehentlich Ressourcen frisst, oder? :-D)
Meines Wissens nach sind die 10 Minuten für Apps gedacht, die im Hintergrund funktionieren müssen und nicht in die Kategorie „Skype, GPS und Musikwiedergabe“ fallen. Andere Anwendungen wechseln in den Ruhemodus und bleiben im Speicher, bis der Speicher für andere Zwecke benötigt wird.
Der angehaltene Modus hat den Vorteil, dass die Daten der App nicht verloren gehen, wenn Sie sie beenden müssen. Alle Daten werden zum Zeitpunkt des Wechsels in den angehaltenen Modus gespeichert.
oder, im Fall von z.B. Wiedergabe, das Äquivalent des Befehls bg / fg
Und was ist mit dem Player oder anderen Anwendungen, die längere Zeit im Hintergrund laufen? Ich meine, kann ich als Entwickler „wählen“ oder muss das irgendwie von Apple genehmigt werden?
Damit die Anwendung wirklich zeitlich unbegrenzt im Hintergrund läuft, muss sie eine der folgenden Aktionen ausführen (registrieren):
– Standortdienste (GPS) nutzen
– Spielen Sie Musik im Hintergrund
– Verwenden Sie VOIP (Voice over IP)
Laut Titel (ein Blick unter die Haube) hatte ich erwartet, dass der Artikel eine etwas ausführlichere Erklärung mit technischen Details enthält. Das sieht eher nach einem Perex zum Artikel aus. Wenn es Perex ist, wann kommt dann die Fortsetzung? Können Sie eine Rückerstattung erhalten? :-)
und was möchtest Du genauer wissen?
Von einem Artikel mit „unter der Haube“ im Titel erwarte ich eine detaillierte technische Beschreibung (der Autor könnte beispielsweise den Overhead beim Anwendungswechsel analysieren oder wie der gleichzeitige Zugriff auf Systemressourcen gehandhabt wird), einen Vergleich mit anderen Modellen (zum Beispiel mit einem iPhone mit Jailbreak). Es ist ideal, dies mit einigen Messungen zu untermauern. Ich habe von einem Artikel, dessen Titel „unter der Haube“ enthält, einfach viel mehr erwartet als diese sehr oberflächliche Beschreibung.
Gibt es einen ICQ-Client, der wie Skype kontinuierlich im Hintergrund läuft und die Verbindung nicht abbricht?
Die Anwendung hat 10 Sekunden Zeit, um in den Suspend-Modus zu wechseln, nicht 10 Minuten ... und während dieses Vorgangs können einige Teile bei Backend-Diensten „hängen“ oder auch nicht, von denen einige bereits oben aufgeführt wurden – das nennt Apple „smart“. „Multitasking.... Dann hat das System sie abgeschossen
Die Anwendung kann zusätzliche Zeit in Anspruch nehmen, wenn etwas heruntergeladen, hochgeladen oder verarbeitet wird. Es hat nichts mit GPS, VoIP oder der Musikwiedergabe zu tun, die im minimalistischen Modus zeitlich unbegrenzt laufen.