2011-01-12 8 views
2

Ich bin ein neuer ObjC-Entwickler und nach der Suche im Web und Apples Entwicklerdokumentation kann ich keine gute und prägnante Erklärung der verschiedenen iOS-Gerätemodi finden und was in diesen Modi passiert. Ich sehe viele kleine Diskussionen, aber nichts über das große Ganze.Benötige iOS-Referenz für das, was im Sleep-, Standby- und/oder Idle-Modus passiert

Zum Beispiel sehe ich, dass einige Alarm-Anwendungen für iPhone/iPad behaupten, in der Lage zu sein, Alarme (vermutlich nicht nur Systemalarme) am Morgen auszuführen. Ich habe Mühe zu verstehen, wie das passiert, auch wenn der Benutzer die App über Nacht laufen lässt, vorausgesetzt, das Gerät wechselt in den Ruhezustand, nachdem es nicht verwendet wurde.

Also ich weiß nicht, was passiert, wenn das Gerät in den Ruhezustand oder Standby-Modus geht. Ist es nur der Bildschirm dimmen? Führt die Anwendung im Vordergrund weiterhin Code aus, wechselt in einem gespeicherten Zustand in einen Zwischenzustand wie der Hintergrundmodus oder geht sie vollständig (wenn auch nur vorübergehend) aus?

Ich möchte nur auf eine Website, ein Buch oder den Teil der Apple-Dokumentation hingewiesen werden, die die verschiedenen Gerätestatus, was unter iOS 3 & 4 mit der Anwendung in jedem Zustand und wie geht Verwalten Sie das, wenn Sie eine App ähnlich einem simulierten Nachtwecker erstellen möchten, die "immer eingeschaltet" usw. ist.

Vielen Dank im Voraus.

Antwort

4

Diese "Alarme" sind lokale Benachrichtigungen und sind sehr praktisch. Sie werden selbst dann ausgelöst, wenn eine Anwendung geschlossen wird und sogar wenn das Gerät schläft.

Das Konzept des Schlafens ist nicht zu schwierig; Wenn der Benutzer die Anwendung beendet (indem er die Home-Taste drückt), wird die Anwendung entweder angehalten und in einen eingefrorenen Zustand versetzt (4.x) oder ganz beendet (3.x). Nichtsdestoweniger haben Sie die Möglichkeit, ein paar Aufräumarbeiten durchzuführen, bevor das letztere mit der Methode - (void)applicationWillTerminate:(UIApplication *)application passiert, und bevor das erstere mit der Methode - (void)applicationDidEnterBackground:(UIApplication *)application geschieht (beide werden von Ihrer Delegiertenklasse aufgerufen).

Das Konzept der ‚Schlaf‘ bedeutet, dass sowohl in iPhone OS 3 und iOS 4 werden Sie die folgende Methode erhalten, wenn Ihre Anwendung den Fokus verliert (und auch dann, wenn eine SMS ankommt, oder eine Warnung, usw.):

Wirklich, die meisten Anwendungen (mit den Ausnahmen von Anwendungen, die entwickelt wurden, um im Hintergrund zu arbeiten, wie VoIP, Audio-Streaming usw.) einfach beim Schließen beenden. Aber wenn Sie möchten, können Sie auch das Einfrieren Ihrer App aussetzen und nach mehr Zeit fragen, um eine Aufgabe abzuschließen.

Das war viel einfacher in den 3.x Tagen zu begreifen, aber jetzt mit 4.x 'Multitasking' wird es ein bisschen schwieriger. Es ist jedoch nicht zu entmutigend, und ein Lesen von this will help a bit.

+0

Danke, Alan. Was passiert/in welchem ​​Zustand geht die aktuell laufende App, wenn das Gerät einfach allein gelassen wird, bis der Bildschirm abgedunkelt wird? (Und ich denke, in welchem ​​Zustand befindet sich das Gerät selbst?) – Gregir

+0

Wenn der Bildschirm abgedunkelt wird, läuft die App normal. Der einzige Unterschied ist, dass die erste Berührung den Bildschirm aufhellt und ignoriert wird. Der Anwendung wird die applicationWillResignAktiv: Methode gesendet, wenn der Benutzer das Gerät in Ruhe lässt, bis es in den Ruhezustand wechselt. – ughoavgfhw

+0

Gut zu wissen. Vielen Dank. – Gregir

0
+0

Danke, Aram.Das ist ziemlich hilfreich, aber vor allem würde ich gerne wissen, was alles in Bezug auf Geräte diese Zustände einleitet: den Home-Button drücken, den Top/Lock-Button drücken, das Gerät (nur den Bildschirm?) Schlafen lassen. Für solche Sachen ist es schwer zu finden. – Gregir